- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构-线性表,链表总结
数据结构线性表#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;1线性表的顺序表示和实现#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct{ ElemType *Elem;int length;int listsize;}SqList;Status InitList_Sq(SqList L){//构造一个空的线性表LL.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); If (L.elem==NULL)exit(OVERFLOW);else {L.length=0;L.listsize=LIST_INIT_SIZE;return OK; }}Status DestroyList_Sq(SqList L){//销毁线性表Lif(L.elem==NULL)return ERROR;elsefree(L.elem);return OK;}Status ClearList_Sq(Sqlist L){//将L置为空表if(L.elem==NULL)exit(ERROR);int i; ElemType *p_elem=L.elem;for(i=0;iL.length;i++) { *L.elem=NULL; L.elem++; } L.elem=p_elem;return OK;}Status ListEmpty_Sq(SqList L){//若L为空表则返回TRUE,否则返回FALSEint i; ElemType *p_elem=L.elem;for(i=0;iL.length;i++) {if(*Elem!=0) { L.elem=p_elem;return FALSE; } L.elem++; }return TRUE;}Status ListLength_Sq(SqList L){//返回L中元素个数return L.length;}Status GetElem_Sq(SqList L,int i,ElemType e){//用e返回L中第i个数据元素的值int j; ElemType *p_elem=L.elem;if(i1||iL.length)return OVERFLOW;for(j=1;j=I;j++)L.elem++; e=*L.elem; L.elem=p_elem;return OK;}Status LocateElem_Sq(SqList L,ElemType e,Status(*compare)(ElemType,ElemType)){//返回L中第一个与e满足关系compare()的数据元素的位序,若这个数据元素不存在,则返回0 i=1; p=L.elem;while(i=L.length!(*compare)(*p++,e)) ++i;if(i=L.length return i;else return 0;}Status PriorElem_Sq(SqList L,ElemType cur_e,ElemType pre_e){//若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义 p=L.elem;int i,j; i=LocationElem_Sq(L,cur_e);if(i=1||iL.length)exit(OVERFLOW);for(j=1;jI;j++){if(j==(i-1)) { pre_e=L.elem; L.elem=p;return OK; }else L.elem++; }}Status NextElem_Sq(SqList L,ElemType cur_e,ElemType next_e){//若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的前驱,否则操作失败,next_e无定义 ElemType *p_elem;int i,j; i=LocateElem_Sq(L,cur_e);if(i1||i=L.length)exit(OVERFLOW);for(j=1;j1;j++) {if(j==(i-1)) { next_e
文档评论(0)