博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习数据结构之线性表
阅读量:5366 次
发布时间:2019-06-15

本文共 2359 字,大约阅读时间需要 7 分钟。

实现了线性表的获得元素,插入,删除,统计元素的功能。代码如下,初学者,学习罢了。

1 #include
2 #define MAXSIZE 20 3 typedef int ElemType; /*定义基本类型,视具体情况而定*/ 4 5 typedef int Status; 6 #define OK 1 7 #define ERROR 0 8 #define FALSE 0 9 10 11 /*链表的顺序存储结构*/ 12 typedef struct 13 { 14 ElemType data[MAXSIZE]; /*数组用来存储数据元素*/ 15 int length; /*线性表的长度*/ 16 }SqList; 17 18 19 /*初始化,建立一个新的线性表*/ 20 SqList Initial(SqList list) /*一定注意:形式参数是不能够传递到实际参数的,需要返回值*/ 21 { 22 list.length = 10; /*如果需要将形参传递到实参中需要用指针或者return的方法*/ 23 for(int i = 0;i < 10;i++) 24 list.data[i] = i+1; 25 return list; 26 } 27 28 29 /*获得元素操作*/ 30 Status GetElem(SqList L,int i,ElemType e) 31 { 32 if(L.length == 0 || i < 1 || i > L.length ) 33 return ERROR; 34 e = L.data[i-1]; 35 printf("获得的元素为 %d\n",e); 36 printf("\n"); 37 return OK; 38 } 39 40 /*插入操作,需要插入的元素为e*/ 41 SqList ListInsert(SqList L,int i,ElemType e) 42 { 43 int k; 44 if(L.length >= MAXSIZE || i <= 0 || i > L.length) 45 //return ERROR; 46 printf("ERROR\n"); 47 else 48 { 49 for(k = L.length;k >= i-1;k--) 50 L.data[k+1] = L.data[k]; 51 L.data[i-1] = e; /*将元素插入*/ 52 L.length++; 53 return L; 54 } 55 56 } 57 58 /*删除操作,并且将删除的元素放入e中*/ 59 SqList ListDelete(SqList L,int i,ElemType e) 60 { 61 int k; 62 if(i <= 0 || L.length >= MAXSIZE || i > L.length ) 63 printf("ERROR\n"); 64 else 65 { 66 e = L.data[i-1]; 67 for(k = i;k <= L.length;k++) 68 { 69 L.data[k-1] = L.data[k]; 70 } 71 printf("删除的元素为%d\n",e); 72 L.length--; 73 return L; 74 } 75 76 } 77 78 /*显示列表的长度和已有的元素*/ 79 void ListShow(SqList list) 80 { 81 printf("当前表的长度为: %d\n",list.length); 82 if(list.length == 0) 83 printf("0\n"); 84 else 85 { 86 printf("当前表的元素有:\n"); 87 for(int i = 1;i <= list.length;i++) 88 printf("%d ",list.data[i-1]); 89 } 90 printf("\n"); 91 } 92 93 94 int main() 95 { 96 ElemType a; 97 SqList list; 98 list = Initial(list); 99 list = ListInsert(list,10,13);100 ListShow(list);101 list = ListDelete(list,10,a);102 ListShow(list);103 104 105 return 0;106 }

 

转载于:https://www.cnblogs.com/jeavenwong/p/7142146.html

你可能感兴趣的文章
angular、jquery、vue 的区别与联系
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I &amp; II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
描绘应用程序级的信息
查看>>
php环境搭建脚本
查看>>
php 编译常见错误
查看>>
MES架构
查看>>
hdu 2767(tarjan)
查看>>