【C语言】静态顺序表的实现(包括头插、头删、尾插、尾删、查找、删除指定位置)
#define_CRT_SECURE_NO_WARNINGS1#include<iostream>usingnamespacestd;#include<assert.h>#defineMAXSIZE100typedefintDataType;typedefstructSeqList{DataType_array[MAXSIZE];size_t_size;}SeqList;voidInitSeqList(SeqList*pSeq){assert(pSeq);memset(pSeq->_array,0,sizeof(DataType)*MAXSIZE);pSeq->_size=0;}voidPushBack(SeqList*pSeq,DataTypex){assert(pSeq->_size<MAXSIZE);pSeq->_array[pSeq->_size++]=x;}voidPopBack(SeqList*pSeq){assert(pSeq->_size>0);--pSeq->_size;}voidPushFront(SeqList*pSeq,DataTypex){assert(pSeq->_size<MAXSIZE);for(inti=pSeq->_size-1;i>=0;i--){pSeq->_array[i+1]=pSeq->_array[i];}++pSeq->_size;pSeq->_array[0]=x;}voidPopFront(SeqList*pSeq){assert(pSeq->_size>0);for(inti=1;i<pSeq->_size;i++){pSeq->_array[i-1]=pSeq->_array[i];}--pSeq->_size;}voidInsert(SeqList*pSeq,intpos,DataTypex){assert(pos>=0);assert(pSeq->_size<MAXSIZE);for(inti=pSeq->_size-1;i>=pos;i--){pSeq->_array[i+1]=pSeq->_array[i];}++pSeq->_size;pSeq->_array[pos]=x;}intFind(SeqList*pSeq,DataTypex){inti=0;for(i=0;i<pSeq->_size;i++){if(pSeq->_array[i]==x){returni;}}return-1;}voidErase(SeqList*pSeq,intpos){assert(pos>0);for(inti=pos;i<pSeq->_size;i++){pSeq->_array[i]=pSeq->_array[i+1];}--pSeq->_size;}voidPrintSeqList(SeqList*pSeq){if(pSeq->_size==0){printf("当前顺序表为空!");return;}for(inti=0;i<pSeq->_size;i++){printf("%d",pSeq->_array[i]);}printf("\n");}voidTest(){SeqListList;InitSeqList(&List);PushBack(&List,1);PushBack(&List,2);PushBack(&List,3);PushBack(&List,4);PushBack(&List,5);PushBack(&List,6);PrintSeqList(&List);PopBack(&List);PopBack(&List);PopBack(&List);PrintSeqList(&List);PushFront(&List,0);PushFront(&List,-1);PushFront(&List,-2);PrintSeqList(&List);PopFront(&List);PopFront(&List);PopFront(&List);PrintSeqList(&List);intret=Find(&List,2);printf("%d\n",ret);Erase(&List,1);PrintSeqList(&List);Insert(&List,1,2);PrintSeqList(&List);}intmain(){Test();system("pause");return0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。