线性表的顺序存储结构的实现及其应用(C/C++实现)
存档---
1 #include <stdio.h> 2 #include <stdlib.h> 3 typedef int ElemType; 4 #define MAXSIZE 10 5 #include "SqList.h" 6 7 void main() 8 { 9 SqList myList; 10 int i = 1,x,sum = 0,n; 11 InitList(myList); 12 scanf("%d",&x); 13 while(x!=-1)//输入的数据以-1作为结束标志 14 { 15 if(ListInsert(myList,i,x)==false) 16 { 17 printf("错误!\n"); 18 return; 19 } 20 i++; 21 scanf("%d",&x); 22 } 23 n = ListLength(myList); 24 for(i = 1;i<=n;i++) 25 { 26 x = GetElem(myList,i); 27 sum = sum+x; 28 } 29 printf("%d\n",sum); 30 ClearList(myList); 31 }
1 typedef struct List{ 2 ElemType *elem; 3 int length; 4 }SqList; 5 6 void InitList(SqList &L) 7 { //构造一个空的顺序表 8 L.elem = new ElemType[MAXSIZE]; 9 L.length = 0; 10 } 11 12 void ClearList(SqList &L) 13 { //清空线性表,不销毁 14 //delete []L.elem; 15 //L.elem = NULL; 16 L.length = 0; 17 } 18 19 int ListLength(SqList L) 20 { //求线性表长度 21 return L.length; 22 } 23 24 bool ListInsert(SqList &L,int i,ElemType e) 25 { //在线性表L中第i个数据元素之前插入新数据元素e 26 if(L.length<MAXSIZE) 27 { 28 for(int j = 1;j<=L.length-i+1;j++) 29 { 30 L.elem[L.length-j+1] = L.elem[L.length-j]; 31 } 32 L.elem[i-1] = e; 33 L.length++; 34 return true; 35 } 36 else 37 { 38 return false; 39 } 40 } 41 42 ElemType GetElem(SqList L,int i) 43 { //在线性表L中求序号为i的元素,该元素作为函数返回值 44 if (i<1||i>L.length) 45 { 46 printf("i不在[1..n]范围内"); 47 exit(-2); 48 } 49 return L.elem[i-1]; 50 }
运行结果如下:
作 者:Angel_Kitty
出 处:https://www.cnblogs.com/ECJTUACM-873284962/
关于作者:阿里云ACE,目前主要研究方向是Web安全漏洞以及反序列化。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
欢迎大家关注我的微信公众号IT老实人(IThonest),如果您觉得文章对您有很大的帮助,您可以考虑赏博主一杯咖啡以资鼓励,您的肯定将是我最大的动力。thx.
我的公众号是IT老实人(IThonest),一个有故事的公众号,欢迎大家来这里讨论,共同进步,不断学习才能不断进步。扫下面的二维码或者收藏下面的二维码关注吧(长按下面的二维码图片、并选择识别图中的二维码),个人QQ和微信的二维码也已给出,扫描下面👇的二维码一起来讨论吧!!!
欢迎大家关注我的Github,一些文章的备份和平常做的一些项目会存放在这里。