wei 老師寫的鍊錶(參考)

2021-07-15 20:44:40 字數 1661 閱讀 6343

#include

#include

#include

struct node

;typedef struct node   linklist;

#define len  sizeof(struct node)

#define error   1

#define ok      0

/* 初始化順序線性表 */

linklist *initlist(void) 

/* 初始條件:順序線性表l已存在 */

/* 操作結果:鍊錶輸出,依次對l的每個資料元素輸出 */

linklist * print(linklist *head)

printf("\n");

return head;

}/*  隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(尾插法) */

linklist * createlisttail(linklist *head, int n) 

pre->next = null;                       /* 表示當前鍊錶結束 */

return head;

}/*  隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(頭插法) */

linklist * createlisthead(linklist *head, int n) 

return head;

}/* 初始條件:順序線性表l已存在,1≤i≤listlength(l) */

/* 操作結果:刪除l的第i個資料元素,並用e返回其值,l的長度減1 */

linklist * listdelete(linklist *head,int i) 

if (!(p->next) || j > i) 

return error;           /* 第i個元素不存在 */

q = p->next;

p->next = q->next;

/* 將q的後繼賦值給p的後繼 */

free(q);                    /* 讓系統**此結點,釋放記憶體 */

return head;

}/* 初始條件:順序線性表l已存在,1≤i≤listlength(l), */

/* 操作結果:在l中第i個位置之前插入新的資料元素e,l的長度加1 */

linklist * listinsert(linklist *head,int i,int e)

if (!p || j > i) 

return error;   /* 第i個元素不存在 */

s = (linklist *)malloc(len);  /*  生成新結點(c語言標準函式) */

s->data = e;  

s->next = p->next;      /* 將p的後繼結點賦值給s的後繼  */

p->next = s;          /* 將s賦值給p的後繼 */

return head;

}/* 初始條件:順序線性表l已存在。操作結果:將l重置為空表 */

linklist * clearlist(linklist *head)

head->next=null;        /* 頭結點指標域為空 */

return head;

}int main()

自己寫的鍊錶

include include int mylistcount 0 struct mylist mymainlist void main mymainlist.pc null mymainlist.pcnext null mylist plisttemp null char pctemp null ...

寫鍊錶收穫

1.main.obj error lnk2019 無法解析的外部符號 public thiscall sllist sllist void 1sllist qae xz 該符號在函式 main 中被引用 用vs2013編輯,這是乙個錯誤,後來才知道,原來是析構函式沒有實現,在析構函式那兒加了乙個大括...

C語言寫的鍊錶

怎麼會說c 的鍊錶和c語言不一樣呢?好吧,我再寫一遍c語言的單鏈表。include stdio.h include stdlib.h typedef struct lianbiao lianbiao lianbiao chuangjian 建立頭節點 void xiaohui lianbiao to...