资源描述:
《按顺序存储结构.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*按顺序存储结构 代码如下:*/#include#defineMAXSIZE1024#defineTRUE 1#defineFALSE -1//定义元素为整形typedefintElemType;typedefstruct{ ElemTypesata[MAXSIZE]; intlen;}SeqList;SeqListSeqListInit() //顺序表初始化{//构造一个空链表 SeqListL; L.len=0; returnL;}intSeqListFull(SeqListL) /
2、/判断是否表满,满则返回TRUE{ if(L.len==MAXSZE) { printf("fulllist"); returnTRUE; } elsereturnFALSE;}voidSeqListInsert(SeqListL,inti,ElemTypex) //顺序表插入函数{//顺序表中的第i个位置上插入元素x inti,j; if((i=SeqListFull(L))==1) { exit(0); } if(i<1
3、
4、i>L.len+1) { printf("wrongposition"
5、); exit(0); } for(j=L.len-1;j>=i-1;j--) L.data[j+1]=L.data[j]; L.data[i-1]=x; L.len++;}intSeqListAdd(SeqListL)//顺序表在第一个位置添加元素{ inti; printf("Inputthenewelement"); scanf("%d",&i); SeqListInsert(L,1,i); returnTRUE;}voidSeqListOrder(SeqListL)//将元素按
6、有小到大排列{ inti,j,l; for(i=1;i<=L.len;i++) for(j=i+1;j<=L.len;j++) if(L.data[i-1]>L.data[j-1]) { l=L.data[i-1]; L.data[i-1]=L.data[j-1]; L.data[j-1]=l; } SeqListTraverse(L);}voidSeqListDelete(SeqListL,inti)//删除函数
7、{//删除第i个位置上的元素 intj; if(j=SeqListPosi(L,i)==-1) { exit(0); } for(j=i;j<=L.len;j++) L.data[j-1]=L.data[j]; L.len--;}intSeqListLocate(SeqListL,ElemTypex)//查找x{//在顺序表中查找元素x并返回x的下标 inti=1; while(i<=L.len&&L.data[i-1]!=x) i++; if(i<=L.len)returni;
8、elsereturnFALSE;}intSeqListPosi(SeqListL,inti)//判断下标是否正确,不正确则返回FALSE{ if(i<1
9、
10、i>L.len) { printf("WrongPosition"); returnFALSE; } elsereturnTRUE;}intSeqListGet(SeqListL,inti) {//返回第i个位置上的元素 intj; if(j=SeqListPosi(L,i)==-1) { exit(0); } r
11、eturnL.data[i-1];}SeqListSeqListClear(SeqListL)//清空顺序表{ L.len=0; returnL;}intSeqListLength(SeqListL)//求顺序表的长度{ returnL.len;}intSeqListEmpty(SeqListL)//判断顺序表是否为空,空则返回TRUE{ if(L.len==0) { printf("ListNULL"); retrunTRUE; } elsereturnFALSE;}intSeqLis
12、tPrior(SeqListL,intx)//求x的前驱{ inti; i=SeqListLocate(L,x); if(i==-1) printf("ThereisnoxinSeqListLocate"); else { if(i==1) printf("Thefirstelementhasn'tprior");