《数据结构C语言版 单链表源代码.doc》由会员分享,可在线阅读,更多相关《数据结构C语言版 单链表源代码.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流数据结构C语言版 单链表源代码【精品文档】第 8 页/*单链表的各种操作*/#include #include #define null 0typedef int ElemType; /* 字符型数据*/struct LNodeElemType data;struct LNode *next;void setnull(struct LNode *p);int length (struct LNode *p);ElemType get(struct LNode *p,int i);void insert(struct LNode *p,ElemType x
2、,int i);void dele(struct LNode *p,int i);void display(struct LNode *p);int locate(struct LNode *p,ElemType x);void main()struct LNode *head,*q; /*定义静态变量*/int select,x1,x2,x3,x4;int i,n; int m,g;char e,y; setnull(&head); /*建设链表并设置为空表*/ printf(请输入数据长度: ); scanf(%d,&n); for(i=1;inext; return(n);ElemTyp
3、e get(struct LNode *p,int i)int j=1;struct LNode *q=*p;while (jnext; j+; if(q!=null) return(q-data); elseprintf(位置参数不正确!n);return 0;int locate(struct LNode *p,ElemType x)int n=0; struct LNode *q=*p;while (q!=null&q-data!=x) q=q-next; n+; if(q=null) return(-1); else return(n+1);void insert(struct LNo
4、de *p,ElemType x,int i)int j=1; struct LNode *s,*q; s=(struct LNode *)malloc(sizeof(struct LNode); s-data=x; q=*p; if(i=1) s-next=q; *p=s; else while(jnext!=null) q=q-next; j+; if(j=i-1) s-next=q-next; q-next=s; else printf(位置参数不正确!n);void dele(struct LNode *p,int i)int j=1; struct LNode *q=*p,*t; i
5、f(i=1) t=q; *p=q-next; else while(jnext!=null) q=q-next; j+; if(q-next!=null&j=i-1) t=q-next; q-next=t-next; else printf(位置参数不正确!n); if(t!=null) free(t);void display(struct LNode *p)struct LNode *q; q=*p; printf(单链表显示: ); if(q=null) printf(链表为空!); else if (q-next=null) printf(%dn,q-data); else while(q-next!=null) printf(%d-,q-data); q=q-next; printf(%d,q-data); printf(n);