《数据结构C语言版线性表源代码.pdf》由会员分享,可在线阅读,更多相关《数据结构C语言版线性表源代码.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#include#include#include#include#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define OK 1#define ERROR-1#define OVERFLOW-1#define ENDFLAG 0 typedef int Status;typedef int ElemType;#define OUTFORMAT%d#define INFORMAT%d typedef struct ElemType*elem;int length;int listsize;SqList;Status InitList(S
2、qList*L)L-elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!L-elem)/如果没有分配成功 exit(OVERFLOW);/退出,显示()内内容 L-length=0;L-listsize=LIST_INIT_SIZE;return OK;Status Inputdata(SqList*L)/SqList*L定义首节点的地址 ElemType temp,*newbase;printf(nInput the data of the sequencial list:nNote:0 is the ending flag:
3、n);scanf(INFORMAT,&temp);while(temp!=ENDFLAG)if(L-length=L-listsize)newbase=(ElemType*)realloc(L-elem,(L-listsize+LISTINCREMENT)*sizeof(ElemType);/扩 大空间,把旧的地址拷贝到新空间 if(!newbase)exit(OVERFLOW);L-elem=newbase;L-listsize+=LISTINCREMENT;L-elemL-length+=temp;scanf(INFORMAT,&temp);return OK;Status ListIns
4、ert(SqList*L,int i,ElemType e)ElemType*p,*q,*newbase;if(iL-length)return ERROR;if(L-length=L-listsize)Newbase=(elemType*)realloc(L-elem,(L-listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase)exit(OVERFLOW);L-elem=newbase;L-listsize+=LISTINCREMENT;q=&(L-elemi-1);for(p=&(L-elemL-length-1);p=q;-p)*(p+
5、1)=*p;*q=e;+L-length;return OK;void MyDisplay(SqList L)int i;for(i=0;iL.length;i+)printf(OUTFORMAT,L.elemi);printf(n);void main(void)SqList L;ElemType temp;int i;if(!InitList(&L)/如果初始化失败 printf(To initialize the sequencial list failn);getch();/如果失败,按任意键退出 exit(0);if(!Inputdata(&L)printf(To input the data of the sequencial list failn);getch();exit(0);MyDisplay(L);printf(Input the data that you want to insert:);scanf(INFORMAT,&temp);printf(Input the insert_location:);scanf(%d,&i);if(!ListInsert(&L,i,temp)printf(To insert failn);getch();exit(0);MyDisplay(L);getch();