①:在线性表中插入数据

int insertlist (seqlist *l, int i, int x)    //在线性表中插入数据
{int k;if(i < 1 || i > l->last + 1){printf("插入的位置不合法");return(ERROR);}if(l->last >= maxsize-1){printf("线性表已经存满");}for(k = l->last; k >= i - 1;k--){l->elem[k + 1] = l->elem[k];}l->elem[i-1] = x;l->last++;        //不要忘记把last加一return(OK);
}

  ②:删除线性表中的元素:

int deletelist(seqlist *l, int i)        //删除元素
{int k;if(i < 1 || i > l->last + 1){printf("删除位置不合法");return(ERROR);}for(k = i;k < l->last;k++){l->elem[k - 1] = l->elem[k];}l->last--;return(OK);
}

  ③:查找线性表元素:

int locate(seqlist *l, int x)        //查找元素
{int i;int k;for(i = 0;i < l->last;i++){if(l->elem[i] == x){k = i;}else{k = 0;}}return k;
}

所有代码:

View Code

#include <stdio.h>
#include <stdlib.h>#define maxsize 1024
#define OK 1
#define ERROR 0typedef struct
{int elem[maxsize];int last;
}seqlist; int main()
{int len,i,j; int position,value;int delpos;int locval,loci;seqlist *la;la=(seqlist *)malloc(sizeof(seqlist));    //分配空间
printf("请输入字符串的长度:");scanf("%d",&len);la->last = len;    //设置线性表的长度
printf("请依次输入数:");for(i=0;i<la->last;i++){scanf("%d",&la->elem[i]);    //设置值 不要忘记&符号
    }printf("输入的数字如下:");    for(j=0;j<la->last;j++)            //输出数据
    {printf("%d \n",la->elem[j]);}printf("请输入要插入元素的位置:");scanf("%d",&position);printf("请输入要插入元素的值:");scanf("%d",&value);insertlist(la,position,value);printf("添加后的线性表如下:");for(j=0;j<la->last;j++)            //输出数据
    {printf("%d \n",la->elem[j]);}printf("请输入删除元素的位置:");scanf("%d",&delpos);deletelist(la,delpos);printf("删除后的线性表如下:");for(j=0;j<la->last;j++)            //输出数据
    {printf("%d \n",la->elem[j]);}printf("输入要查找的元素:");scanf("%d",&locval);loci = locate(la,locval);printf("元素的位置是%d",locval);
}int insertlist (seqlist *l, int i, int x)    //在线性表中插入数据
{int k;if(i < 1 || i > l->last + 1){printf("插入的位置不合法");return(ERROR);}if(l->last >= maxsize-1){printf("线性表已经存满");}for(k = l->last; k >= i - 1;k--){l->elem[k + 1] = l->elem[k];}l->elem[i-1] = x;l->last++;        //不要忘记把last加一return(OK);
}int deletelist(seqlist *l, int i)        //删除元素
{int k;if(i < 1 || i > l->last + 1){printf("删除位置不合法");return(ERROR);}for(k = i;k < l->last;k++){l->elem[k - 1] = l->elem[k];}l->last--;return(OK);
}int locate(seqlist *l, int x)        //查找元素
{int i;int k;for(i = 0;i < l->last;i++){if(l->elem[i] == x){k = i;}else{k = 0;}}return k;
}

转载于:https://www.cnblogs.com/ngnetboy/archive/2012/09/18/2690178.html

【数据结构】顺序线性表的几种常用方法相关推荐

  1. 用标准C语言初始化线性表,C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作...

    1.数据结构-顺序线性表的实现-C语言 #define MAXSIZE 100 //结构体定义 typedef struct { int *elem; //基地址 int length; //结构体当 ...

  2. C语言实现数据结构顺序线性表

    大家好,我是胡阳阳 数据结构一直以来都是一门很难的学科 学数据结构时老师总讲的思想和伪代码 对于初学者来说很难写出对应的程序 下面我们来讲解如何才能自己写出顺序线性表的代码 首先顺序线性表是由数组来实 ...

  3. 【数据结构】 线性表的顺序表

    线性表是一种最为常用的数据结构,包括了一个数据的集合以及集合中各个数据之间的顺序关系.线性表从数据结构的分类上来说是一种顺序结构.在Python中的tuple,list等类型都属于线性表的一种. 从抽 ...

  4. 判断数组中某个元素除自身外是否和其他数据不同_算法工程师要懂的3种算法数据结构:线性表详解...

    算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 其实这些 ...

  5. 【数据结构】线性表(一):顺序列表

    线性表(linear_list)是最常用且最简单的一种数据结构,简言之,一个线性表是n个数据元素的有序序列. 例如:(a1 , ... , ai-1 , ai , ai+1 , ... , an):a ...

  6. 用Java描述数据结构之线性表的顺序存储(顺序表),ArrayList及其方法的介绍

    我们先来想一想什么是线性表? 线性表是最基本.最简单.也是最常用的一种数据结构.线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列. 线性表中数据元素之 ...

  7. 数据结构 2-2 线性表的顺序表实现

    一.概念 线性表有两种实现方式,顺序表和链表,顺序表作为较简单的实现方式,可以借用数组来实现.顺序表和链表各有各自的优缺点,这是由其性质所决定的,在选择时要根据题目要求,灵活进行选择. 二.定义 以C ...

  8. 数据结构之线性表----一文看懂顺序表、单链表、双链表、循环链表

    ​ 线性表是数据结构中比较基础的内容,不过也是入门的所需要客服的第一个难关.因为从这里开始,就需要我们动手编程,这就对很多同学的动手能力提出了挑战.不过这些都是我们需要克服的阵痛,学习新的知识总是痛苦 ...

  9. 数据结构之线性表(顺序表和链表)

    线性表 首先线性表的定义就是:零个或多个数据元素的有限序列. 列如高考前每个班级排队照准考证,这个队伍就可以看做一个线性表,大家都井然有序的排着队,是一个有限的序列,一个班就那么几十个人,而且每个人之 ...

  10. c语言visit_数据结构(c语言)——入门数据结构的世界:顺序线性表(一)

    前面说的话 提到数据结构,最出名的恐怕还是四大基本结构,分别是集合,线性结构,树形结构和图形结构. 本人只是一名普普通通的本科学生,学的东西比较基础,甚至有可能比较落伍,但作为所有国内高等学府相关专业 ...

最新文章

  1. java编程 反射类的使用
  2. 【转载】只有程序员才能看懂的幽默
  3. 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一3.2.2 建立实验室...
  4. 阿里云数据库产品专家胡航丽:数据库自动驾驶平台DAS重磅助力数据库领域智能未来...
  5. 名片识别信息分类python_python文字识别
  6. java session失效之后跳转,session失效后如何实现页面不跳转到主页而是跳转到session失效时的页面...
  7. 王道机试指南读后总结-5(迷宫深搜问题详解)
  8. 在线打mysql代码_mysql 在线alter table要留神_mysql
  9. mysql慢查询 表级锁_三分钟了解Mysql的表级锁——《深究Mysql锁》
  10. Linux基础之-Bash命令优先级
  11. 【转】如何有效地记忆与学习
  12. Oracle掌管权限和角色
  13. cache 的设计与实现
  14. 【openGauss】gsql客户端工具(二)gsql客户端工具之Data Studio客户端工具
  15. 微量样本RNA甲基化m6A技术比较
  16. 内容分发网络:请简述 CDN 回源如何工作?
  17. 【考研攻略】北京交通大学网络空间安全专业2018-2022年考研数据分析
  18. 记一次NGINX配置问题
  19. 使用selenium爬取唯品会
  20. win7安装vmware+ubuntu16.04

热门文章

  1. MATLAB入门教程之MATLAB的基本知识
  2. fast recovery area oracle,oracle Fast Recovery Area的管理
  3. linux之cenos7修改ip(临时和永久)
  4. javascript 本地存储(cookies、sessionStorage和localStorage解释及区别)
  5. 7-7Hadoop学习之常用Linux命令与集群配置
  6. webapi 状态返回 php,让WebAPI 返回JSON格式的数据实例教程
  7. python源代码文件_Python代码编译与反编译
  8. 阶段3 2.Spring_05.基于XML的IOC的案例1_3 测试基于XML的IOC案例
  9. 阶段3 2.Spring_03.Spring的 IOC 和 DI_7 spring中bean的细节之作用范围
  10. leetcode 979. 在二叉树中分配硬币