單向鍊錶的建立

2021-09-12 19:05:33 字數 1539 閱讀 1009

鍊錶是線性表的一種,所謂的線性表包含順序線性表和鍊錶,順序線性表是用陣列實現的,在記憶體中有順序排列,通過改變陣列大小實現。而鍊錶不是用順序實現的,用指標實現,在記憶體中不連續。意思就是說,鍊錶就是將一系列不連續的記憶體聯絡起來,將那種碎片記憶體進行合理的利用,解決空間的問題。

所以,鍊錶允許插入和刪除表上任意位置上的節點,但是不允許隨即訪問。鍊錶有很多種不同的型別:單向鍊錶、雙向鍊錶及迴圈鍊錶。

單向鍊錶的實現:

(1)單向鍊錶的建立過程:

第一步:定義節點的資料結構;

第二步:建立乙個空表。

第三步:利用malloc()向系統申請分配乙個節點。

第四步:將新節點的指標成員賦值為空。若是空表,將新節點連線到表頭;若是非空表,將新節點連線到表尾。

第五步:判斷是否有後續節點,如有則轉入第三步,否則結束。

(2)單向鍊錶的輸出過程:

第一步:找到表頭。

第二步:若為非空表,則輸出節點的值成員,是空表則退出。

/鍊錶的建立,就相當於乙個結點不斷尾插/頭插的過程/

正向建鏈

#include#include#define n 5

typedef struct nodeelemsn;

elemsn *creatlink(int a)

return h;

}void printlink(elemsn *h)

} int main()

; elemsn *head=null;

//正向建立單向鍊錶

head=creatlink(a);

//輸出單向鍊錶

printlink(head);

return 0;

}

#include#include#define n 5

typedef struct nodeelemsn;

elemsn *creatlink(int a)

return h;

}void printlink(elemsn *h)

} int main()

; elemsn *head=null;

//正向建立單向鍊錶

head=creatlink(a);

//輸出單向鍊錶

printlink(head);

return 0;

}

#include#include#define n 5

typedef struct nodeelemsn;

elemsn *creatlink(int a)

return h;

}void printlink(elemsn *h)

} int main()

; elemsn *head=null;

//正向建立單向鍊錶

head=creatlink(a);

//輸出單向鍊錶

printlink(head);

return 0;

}

c語言單向鍊錶建立

typedef struct nodenode,ptrnode 1 結構體的大小 參考鏈結 char 1 int 4 64位系統中,不管什麼型別的指標的大小都是8 cpu一次讀取8位元組,在結構體中會對不滿足8位元組的型別補全為8位元組 乙個實體結構體的大小為補全後所有變數大小的和。sizeof s...

單向鍊錶的建立和操作

public class singlylinkedlistdemo title singlylinkedlist description 簡單單向鍊錶 類 company author sunny date 2016 9 28下午11 12 45 class singlylinkedlist 插入頭...

單向鍊錶的建立(C語言)

貌似有段時間沒有做原創文章了,聒噪的很,開始正式學習資料結構啦哈哈,今天先做單向鍊錶的建立,希望和大家一起分享 陣列作為存放同類資料的集合,給我們在程式設計時帶來很多的方便,增加了靈活性。但陣列也同樣存在一些弊病。如陣列的大小在定義時要事先規定,不能在程式中進行調整,這樣一來,在程式設計中針對不同問...