1、/* 清空顺序表 */void ListClear(SeqList L)/* 求顺序表长度 */int ListLength(SeqList L)/* 检查顺序表是否为空 */int ListEmpty(SeqList L)/*检查顺序表是否为满 */int ListFull(SeqList L)/* 遍历顺序表 */void ListTraverse(SeqList L)/* 从顺序表中查找元素 */DataType ListGet(SeqList L ,int i)/* 从顺序表中查找与给定元素值相同的元素在顺序表中的位置 */int ListLocate(SeqList L, DataT
2、ype x)/* 向顺序表中插入元素 */void ListInsert(SeqList L,int i,DataType x)/* 从顺序表中删除元素 */void ListDelete(SeqList L,int i) /*求顺序表中元素的前驱*/DataType ListPrior (SeqList L,DataType e)/*求顺序表中元素的后继*/DataType ListNext(SeqList L,DataType e)实验2 单链表的实验内容和要求完全类似,实验参考程序见参考程序2#include/* 定义ElemType为int类型 */typedef int ElemTy
3、pe;#define MAXSIZE 100#define FALSE 0#define TRUE 1ElemType dataMAXSIZE; int length;SeqList L; L.length=0; return L; SeqList ListClear(SeqList L)L.length=0; return(L.length);if(L.length) return(FALSE); else return(TRUE);if(L.length=MAXSIZE) return(TRUE); else return(FALSE);int i; if(L.length=0) prin
4、tf(顺序表为空n); else printf(当前顺序表中的元素为:n for(i=1;i=L.length;i+) printf(%d ,L.datai-1); printf(ElemType ListGet(SeqList L ,int i)ElemType e; e=L.datai-1; return(e);int ListLocate(SeqList L, ElemType x)int i=0; while(iL.length & L.datai!=x) i+; if (iL.length) return (i+1); else return 0;SeqList ListInsert
5、(SeqList L,int i,ElemType x)int j; if(L.length=MAXSIZE)表满,不能插入n else if(iL.length+1)插入位置不正确n else for(j=L.length-1;j=i-1;j-) L.dataj+1=L.dataj; L.datai-1=x; L.length+;SeqList ListDelete(SeqList L,int i)ElemType x;L.length)删除位置不正确n else x=L.datai-1; for(j=i;jL.length) printf(查找的位置不正确n else printf(顺序表
6、中第%d个元素的值为:%dn,i,ListGet(L,i); break; case 8:请输入要查找的元素的值ne); else location=ListLocate(L,e); if(location=0) printf(顺序表中不存在值为%d的元素n else printf(顺序表中%d的位置是:,e,ListLocate(L,e); case 9:请输入要插入的元素的位置和其值:%d%di,& L=ListInsert(L,i,e); case 10:请输入要删除的元素的位置: L=ListDelete(L,i); case 11:scanf( prior=SeqListPrior(L,e); if(prior) printf(%d的前驱是:,e,prior); case 12: next=SeqListNext(L,e); if(next) printf(%d的后继是:,e,next); default:quit=1;stdlib.h#define
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1