资源描述:
《C语言顺序表操作.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#include#include#include#defineLISTINITSIZE100#defineLISTINCREMENT10#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintElemType;typedefintStatus;typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;
2、SqListL;//定义一个全局变量StatusInitList(SqList&L){//1.初始化一个顺序表L.elem=(ElemType*)malloc(LISTINITSIZE*sizeof(ElemType));if(!L.elem){printf("存储分配失败,初始化失败!");exit(OVERFLOW);}else{L.length=0;L.listsize=LISTINITSIZE;}returnOK;}voidDestroyList(){//2.销毁顺序表if(L.length==0){printf("线性表为空或不存
3、在");}else{free(L.elem);L.elem=NULL;L.listsize=0;L.length=0;printf("销毁成功!");}}StatusClearList(){//3.清空顺序表if(L.length==0){printf("线性表为空或不存在");}else{L.elem=NULL;L.length=0;printf("清空线性表成功!!");returnTRUE;}}StatusListEmpty(){//4.判断线性表是否为空if(L.length==0)printf("该线性表为空!")
4、;elseprintf("该线性表不为空.");return0;}StatusListLength(){//5.求线性表长度printf("该线性表的长度为:%d",L.length);return0;}StatusGetElem(){//6.获取线性表指定位置元素inti;if(L.length==0){printf("线性表为空或不存在");}else{printf("请输入你要定位的位置:");scanf("%d",&i);if(i>L.length
5、
6、i<=0){printf("您寻找的位置不存在!");returnFA
7、LSE;}elseprintf("您寻找的位置是:%d,对应的元素是:%d",i,L.elem[i-1]);returnTRUE;}}StatusPriorElem(){//7.求前驱元素inti;if(L.length==0){printf("线性表为空或不存在");}else{printf("请输入你所求的前驱的元素位置:");while(1){scanf("%d",&i);if(i<=1
8、
9、i>L.length)printf("你寻找的元素前驱不存在,请重新输入:");else{printf("你所确定的第%d个元素是:%d,
10、该元素的前驱是:%d",i,L.elem[i-1],L.elem[i-2]);break;}}return0;}}StatusNextElem(){//8.求后继inti;if(L.length==0){printf("线性表为空或不存在");}else{printf("请输入你所求的后继的元素位置");while(1){scanf("%d",&i);if(i<=0
11、
12、i>L.length-1)printf("你寻找的元素不存在,请重新输入:");else{printf("你所确定的第%d个元素是:%d,该元素的后继是:%d
13、",i,L.elem[i-1],L.elem[i]);break;}}return0;}}StatusInsertList(){//9.插入元素inti,temp;if(L.length==0){printf("线性表为空或不存在");}else{printf("原线性表是:");for(i=0;i<3;i++){printf("%dt",L.elem[i]);}printf("");while(1){printf("请输入你要插入的元素位置:");scanf("%d",&i);if(i>L.length
14、
15、i<0)printf(
16、"插入位置不合法,请重新输入:");else{printf("请输入你要插入的数值:");scanf("%d",&temp);L.length++