欢迎来到天天文库
浏览记录
ID:10941853
大小:38.00 KB
页数:5页
时间:2018-07-09
《线性表的完整程序数据结构c语言版》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*~~~~~~~~~~~~~~~~~~顺序表存储结构及常见操作(seqlist.c)~~~~~~~~~~~~~~~~*/#ifndef__SEQLIST__#define__SEQLIST__#include/*顺序表存储空间长度的最小值*/#defineLISTMINSIZE10/*顺序表存储结构类型定义*/typedefstruct{ListDT*base;/*顺序表空间基地址*/intlistsize;/*顺序表空间尺寸*/intlen;/*顺序表长度*/}SeqList;/*顺序表初始化*/voidListInitialize(SeqList*pL,i
2、ntsize){if(sizelistsize=size;pL->base=(ListDT*)malloc(pL->listsize*sizeof(ListDT));if(!pL->base)exit(EXIT_FAILURE);pL->len=0;/*初始化空表*/}/*按给定的下标取顺序表元素值*/BOOLListElem(SeqListL,intindex,ListDT*pelem){BOOLflg=TRUE;if(index<0
3、
4、index>L.len-1)flg=FALSE;
5、/*参数越界*/else*pelem=L.base[index];returnflg;}/*求顺序表长度*/intListLen(SeqListL){returnL.len;}/*在顺序表中指定序号位置插入元素*/BOOLListInsert(SeqList*pL,intpos,ListDTd){BOOLflg=TRUE;inti;if(pos<0
6、
7、pL->len>=pL->listsize
8、
9、pos>pL->len)flg=FALSE;else{for(i=pL->len-1;i>=pos;i--)/*移动数据*/pL->base[i+1]=pL->base[i];pL->ba
10、se[pos]=d;/*写入数据*/pL->len++;/*表长增1*/}returnflg;}/*把顺序表中指定序号的元素删除*/BOOLListDel(SeqList*pL,intpos){BOOLflg=TRUE;inti;if(pos<0
11、
12、pos>=pL->len)flg=FALSE;else{for(i=pos+1;ilen;i++)/*移动数据*/pL->base[i-1]=pL->base[i];pL->len--;/*表长增1*/}returnflg;}/*在顺序表中查找元素*/intListLoc(SeqListL,ListDTd,BOOL(*equa
13、l)(ListDT,ListDT)){intpos=L.len-1;while(pos>=0&&!(*equal)(L.base[pos],d))pos--;returnpos;}/*取前导元素序号位置*/BOOLListPrior(SeqListL,intpos,int*ppriorpos){BOOLflg=TRUE;if(pos>0&&pos14、(pos>=0&&pos15、i;ListDTx;printf("List:");for(i=0;i
14、(pos>=0&&pos15、i;ListDTx;printf("List:");for(i=0;i
15、i;ListDTx;printf("List:");for(i=0;i
此文档下载收益归作者所有