欢迎来到天天文库
浏览记录
ID:43588082
大小:30.78 KB
页数:50页
时间:2019-10-11
《顺序表地基本操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准顺序表的基本操作/*sqList.h文件*/#defineLIST_INIT_SIZE50/*初始分配的顺序表长度*/#defineINCREM10/*溢出时,顺序表长度的增量*/#defineOVERFLOW1#defineOK0#defineERROR-1typedefintElemType;/*定义表元素的类型*/typedefstructSqList{ElemType*elem;/*存储空间的基地址*/intlength;/*顺序表的当前长度*/intlistsize;/*当前分配的存储空间*/}SqList
2、;/*sqListOp.h文件*/#include"Sqlist.h"intInitList_sq(SqList&L);//顺序表创建函数定义voidFreeList_sq(SqList&L);//顺序表销毁函数定义intListInsert_sq(SqList&L,inti,ElemTypee);//在顺序表的位置i插入元素evoidPrintList_sq(SqList&L);//遍历并输出顺序表所有元素intListDelete_sq(SqList&L,inti,ElemType&e);//删除顺序表第i个元素的boo
3、lListEmpty(SqList&L);//判断顺序表是否为空文档大全实用标准intLocateElem_sq(SqListL,ElemTypee);//在顺序表里查找出第1个与e相等的数据元素位置//已知线性表La和Lb的元素按值非递减排列//归并后的La和Lb得到新的顺序线性表Lc,Lc的元素也是按值非递减排列voidMergeList_sq(SqListLa,SqListLb,SqList&Lc);/*sqListOp.cpp文件*/#include#include#includ
4、e#include"sqlistOp.h"//创建顺序表intInitList_sq(SqList&L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);/*初始化失败,返回0*/L.length=0;/*置空表长度为0*/L.listsize=LIST_INIT_SIZE;/*置初始空间容量*/returnOK;/*初始化成功,返回1*/}/*InitList*///销毁顺序表void
5、FreeList_sq(SqList&L){if(L.elem)free(L.elem);printf("完成链表内存销毁");}文档大全实用标准//在顺序表的第i个位置之前插入新元素intListInsert_sq(SqList&L,inti,ElemTypee){intk;if(i<1
6、
7、i>L.length+1)returnERROR;/*插入位置不合法*/if(L.length>=L.listsize){/*存储空间满,重新分配空间*/L.elem=(ElemType*)realloc(L.elem,(LIST_
8、INIT_SIZE+INCREM)*sizeof(ElemType));if(!L.elem)returnOVERFLOW;/*存储分配失败*/L.listsize+=INCREM;/*修改存储空间大小*/}for(k=L.length-1;k>=i-1;k--){/*插入位置之后元素后移*/L.elem[k+1]=L.elem[k];}L.elem[i-1]=e;/*插入元素*/L.length++;/*顺序表长度加1*/returnOK;}/*ListInsert*///遍历并输出顺序表所有元素voidPrintList
9、_sq(SqList&L){if(!L.elem)return;inti=0;for(i=0;i10、11、i>L.length)returnERROR;/*删除位置不合法*/e=L.elem[i-1];for(k=i-1;k12、lem[k]=L.elem[k+1];L.length--;/*顺序表长度减1*/returnOK;}//在顺序表里查找出第1个与e相等的数据元素位置intLocateElem_sq(SqListL,ElemTypee){inti=0;while(i<=L.length){if(L.ele
10、
11、i>L.length)returnERROR;/*删除位置不合法*/e=L.elem[i-1];for(k=i-1;k12、lem[k]=L.elem[k+1];L.length--;/*顺序表长度减1*/returnOK;}//在顺序表里查找出第1个与e相等的数据元素位置intLocateElem_sq(SqListL,ElemTypee){inti=0;while(i<=L.length){if(L.ele
12、lem[k]=L.elem[k+1];L.length--;/*顺序表长度减1*/returnOK;}//在顺序表里查找出第1个与e相等的数据元素位置intLocateElem_sq(SqListL,ElemTypee){inti=0;while(i<=L.length){if(L.ele
此文档下载收益归作者所有