鍊錶是線性表的一種,所謂的線性表包含順序線性表和鍊錶,順序線性表是用陣列實現的,在記憶體中有順序排列,通過改變陣列大小實現。而鍊錶不是用順序實現的,用指標實現,在記憶體中不連續。意思就是說,鍊錶就是將一系列不連續的記憶體聯絡起來,將那種碎片記憶體進行合理的利用,解決空間的問題。
所以,鍊錶允許插入和刪除表上任意位置上的節點,但是不允許隨即訪問。鍊錶有很多種不同的型別:單向鍊錶、雙向鍊錶及迴圈鍊錶。
單向鍊錶的實現:
(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語言)
貌似有段時間沒有做原創文章了,聒噪的很,開始正式學習資料結構啦哈哈,今天先做單向鍊錶的建立,希望和大家一起分享 陣列作為存放同類資料的集合,給我們在程式設計時帶來很多的方便,增加了靈活性。但陣列也同樣存在一些弊病。如陣列的大小在定義時要事先規定,不能在程式中進行調整,這樣一來,在程式設計中針對不同問...