《數(shù)據(jù)結(jié)構(gòu)C語言版 單鏈表源代碼》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)C語言版 單鏈表源代碼(10頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、/*單鏈表的各種操作*/#include #include #define null 0typedef int ElemType; /* 字符型數(shù)據(jù)*/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,int i);void dele(struct LNode *p,int i);void
2、display(struct LNode *p);int locate(struct LNode *p,ElemType x);void main()struct LNode *head,*q; /*定義靜態(tài)變量*/int select,x1,x2,x3,x4;int i,n; int m,g;char e,y; setnull(&head); /*建設(shè)鏈表并設(shè)置為空表*/ printf(請輸入數(shù)據(jù)長度: ); scanf(%d,&n); for(i=1;inext; return(n);ElemType get(struct LNode *p,int i)int j=1;struct LNo
3、de *q=*p;while (jnext; j+; if(q!=null) return(q-data); elseprintf(位置參數(shù)不正確!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 LNode *p,ElemType x,int i)int j=1; struct LNode *
4、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(位置參數(shù)不正確!n); void dele(struct LNode *p,int i)int j=1; struct LNode *q=*p,*t; if(i=1) t=q; *p=q-next; else while(jnext!=null
5、) q=q-next; j+; if(q-next!=null&j=i-1) t=q-next; q-next=t-next; else printf(位置參數(shù)不正確!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);