预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

【数据结构】线性表的基本操作 #include<stdio.h> //自定义int类型的ElemType元素 typedefintElemType; //自定义int类型的Status返回状态 typedefintStatus; structList{ ElemType*list1;//指向线性表的第一个节点 intlength; //线性表的实际长度 intlistSize;//线性表的最大长度324 }; //***************************************基本操作开始*************************************// //附加1:给线性表增加空间 StatusAgainMalloc(structList*L1) { ElemType*p=(ElemType*)realloc(L1->list1,(L1->listSize+1)*sizeof(ElemType)); if(!p) { printf("存储空间分配失败!"); exit(1); } L1->list1=p;/*使list1指向新线性表空间*/ L1->listSize=L1->listSize+1;/*把线性空间大小修改为新的长度*/ } //附加2:遍历线性表元素 StatusTraverse(structList*L1) { inti; for(i=0;i<L1->length;i++){ printf("%d",L1->list1[i]); } } //1.创建线性表,给定长度 StatusInitList(structList*L1,intms){ if(ms<0){ printf("初始化线性表的长度不能小于0\n"); exit(1); } L1->length=0; L1->listSize=ms; //给list1分配空间,单元大小为定义的ElemType类型,长度为ms L1->list1=(ElemType*)malloc(ms*sizeof(ElemType)); if(!L1) { printf("空间分配失败!"); exit(1); }else{ printf("空间分配成功!\n"); printf("您分配的空间大小为%d\n",ms); } return0; } //2.销毁线性表 StatusDestoryList(structList*L1){ if(L1!=NULL){ L1->length=0; L1->listSize=0; free(L1); } printf("销毁成功!\n"); return0; } //3.清空线性表 StatusClearList(structList*L1){ //清空只需要将线性表的长度记为0即可。 L1->length=0; printf("清空成功!\n"); return0; } //4.判断线性表是否为空(如果为空返回0,如果不为空返回1) StatusListEmpty(structList*L1){ if(L1->length!=0){ printf("线性表不为空!\n"); return1; } else{ printf("线性表为空!\n"); return0; } } //5.返回线性表的当前长度 intListLength(structList*L1){ returnL1->length; } //6.返回第i个元素的值 ElemTypeGetElem(structList*L1,inti){ if((i<1)||(i>L1->listSize)){ printf("查找的位置超出线性表的范围!"); //退出 exit(1); }else{ //返回第pos个元素的值 returnL1->list1[i-1]; } } //7.判断某个元素是否是线性表元素,如果是,返回这个元素第一次在线性表中出现的位置,如果不是返回0 intIsElem(structList*L1,ElemTypee){ //必须要先定义,后使用! inti; for(i=0;i<L1->length;i++){ if(L1->list1[i]==e) //因为i是从0,开始,所有返回i+1 returni+1; } //如果没有找到相应的元素,返回-1; return0; } //8.返回某个元素的前驱元素(如果这个元素是第一个,则提示“这是第一个元素”) //1、如果这个元素不是线性表元素,返回-1 //2、如果这个元素是线性表第一个元素,返回0,提示第一个元素