【数据结构】顺序线性表的几种常用方法
①:在线性表中插入数据
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; }
所有代码:
#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
【数据结构】顺序线性表的几种常用方法相关推荐
- 用标准C语言初始化线性表,C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作...
1.数据结构-顺序线性表的实现-C语言 #define MAXSIZE 100 //结构体定义 typedef struct { int *elem; //基地址 int length; //结构体当 ...
- C语言实现数据结构顺序线性表
大家好,我是胡阳阳 数据结构一直以来都是一门很难的学科 学数据结构时老师总讲的思想和伪代码 对于初学者来说很难写出对应的程序 下面我们来讲解如何才能自己写出顺序线性表的代码 首先顺序线性表是由数组来实 ...
- 【数据结构】 线性表的顺序表
线性表是一种最为常用的数据结构,包括了一个数据的集合以及集合中各个数据之间的顺序关系.线性表从数据结构的分类上来说是一种顺序结构.在Python中的tuple,list等类型都属于线性表的一种. 从抽 ...
- 判断数组中某个元素除自身外是否和其他数据不同_算法工程师要懂的3种算法数据结构:线性表详解...
算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 其实这些 ...
- 【数据结构】线性表(一):顺序列表
线性表(linear_list)是最常用且最简单的一种数据结构,简言之,一个线性表是n个数据元素的有序序列. 例如:(a1 , ... , ai-1 , ai , ai+1 , ... , an):a ...
- 用Java描述数据结构之线性表的顺序存储(顺序表),ArrayList及其方法的介绍
我们先来想一想什么是线性表? 线性表是最基本.最简单.也是最常用的一种数据结构.线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列. 线性表中数据元素之 ...
- 数据结构 2-2 线性表的顺序表实现
一.概念 线性表有两种实现方式,顺序表和链表,顺序表作为较简单的实现方式,可以借用数组来实现.顺序表和链表各有各自的优缺点,这是由其性质所决定的,在选择时要根据题目要求,灵活进行选择. 二.定义 以C ...
- 数据结构之线性表----一文看懂顺序表、单链表、双链表、循环链表
线性表是数据结构中比较基础的内容,不过也是入门的所需要客服的第一个难关.因为从这里开始,就需要我们动手编程,这就对很多同学的动手能力提出了挑战.不过这些都是我们需要克服的阵痛,学习新的知识总是痛苦 ...
- 数据结构之线性表(顺序表和链表)
线性表 首先线性表的定义就是:零个或多个数据元素的有限序列. 列如高考前每个班级排队照准考证,这个队伍就可以看做一个线性表,大家都井然有序的排着队,是一个有限的序列,一个班就那么几十个人,而且每个人之 ...
- c语言visit_数据结构(c语言)——入门数据结构的世界:顺序线性表(一)
前面说的话 提到数据结构,最出名的恐怕还是四大基本结构,分别是集合,线性结构,树形结构和图形结构. 本人只是一名普普通通的本科学生,学的东西比较基础,甚至有可能比较落伍,但作为所有国内高等学府相关专业 ...
最新文章
- java编程 反射类的使用
- 【转载】只有程序员才能看懂的幽默
- 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一3.2.2 建立实验室...
- 阿里云数据库产品专家胡航丽:数据库自动驾驶平台DAS重磅助力数据库领域智能未来...
- 名片识别信息分类python_python文字识别
- java session失效之后跳转,session失效后如何实现页面不跳转到主页而是跳转到session失效时的页面...
- 王道机试指南读后总结-5(迷宫深搜问题详解)
- 在线打mysql代码_mysql 在线alter table要留神_mysql
- mysql慢查询 表级锁_三分钟了解Mysql的表级锁——《深究Mysql锁》
- Linux基础之-Bash命令优先级
- 【转】如何有效地记忆与学习
- Oracle掌管权限和角色
- cache 的设计与实现
- 【openGauss】gsql客户端工具(二)gsql客户端工具之Data Studio客户端工具
- 微量样本RNA甲基化m6A技术比较
- 内容分发网络:请简述 CDN 回源如何工作?
- 【考研攻略】北京交通大学网络空间安全专业2018-2022年考研数据分析
- 记一次NGINX配置问题
- 使用selenium爬取唯品会
- win7安装vmware+ubuntu16.04
热门文章
- MATLAB入门教程之MATLAB的基本知识
- fast recovery area oracle,oracle Fast Recovery Area的管理
- linux之cenos7修改ip(临时和永久)
- javascript 本地存储(cookies、sessionStorage和localStorage解释及区别)
- 7-7Hadoop学习之常用Linux命令与集群配置
- webapi 状态返回 php,让WebAPI 返回JSON格式的数据实例教程
- python源代码文件_Python代码编译与反编译
- 阶段3 2.Spring_05.基于XML的IOC的案例1_3 测试基于XML的IOC案例
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_7 spring中bean的细节之作用范围
- leetcode 979. 在二叉树中分配硬币