C語言鍊錶實現。

2021-06-21 21:18:07 字數 944 閱讀 6284

主攻c語言教程已經接近尾聲,越發激起了學習資料結構的興趣。學習資料結構不能沒有語言功底,要不然各種錯誤不知如何除錯,使用語言也不是十分自然。這兩樣應該是相得益彰的,學好一種語言,靈活運用,像說話一樣,然後掌握技巧。

在資料結構中 鍊錶是非常重要的。下面是對聯表的實現以及基本的操作函式。還有一些細節歸納。

typedef char data;                         

struct linked_list

;typedef struct linked_list element;

typedef element *link;

//遞迴方式生成鍊錶

link string_to_list(char s)

}//迭代方式生成鍊錶

link s_to_l(char s)

tail -> next = null;

} return head;

}//對聯表進行計數//遞迴方法

int count(link head)

}//對鍊錶進行計數 迭代方法

int count_list(link head)

//遞迴方法輸出鍊錶所有元素。

void print_list(link head)

}///用遞迴方法連線兩個鍊錶

void concatenate(link a, link b)

//遞迴允許我們在便利量表a時候,避免使用任何輔助指標。一般而言,自引用的字元鍊錶,使遞迴方法顯得十分自然。這些遞迴形式基本如下

/*void generic_recursion(link head)

*/void insert(link p1,link p2,link q)

int main(void)

有了鍊錶就可以實現堆疊實現佇列,(當然用陣列也可以,各有各的好處);

C語言鍊錶實現棧

鍊錶實現帶頭結點的棧,入棧用頭插法 環境codeblocks include include include typedef int elemtype typedef struct node node,linkstack 初始化棧 linkstack initstack linkstack s 入棧...

C語言單向鍊錶實現

include include typedef struct node listnode typedef listnode linklist 帶頭節點的單鏈表 初始化單鏈表只有頭節點 void initlinklist linklist linklist 建立乙個單鏈表 linklist creat...

C語言的鍊錶實現

鍊錶 linked list 是一種常見的基礎資料結構,是一種線性表,但是並不會按線性的順序儲存資料 想想陣列,元素是按照順序儲存的,即儲存區域連續 由於不必須按順序儲存,鍊錶在插入的時候可以達到o 1 的複雜度,但是查詢乙個節點或者訪問特定編號的節點則需要o n 的時間。鍊錶結構分類 單向鍊錶 雙...