C語言(鍊錶)

2021-08-21 23:55:00 字數 1342 閱讀 8372

程式=演算法+資料  (演算法就是處理資料的)

資料結構:

1、物理結構:資料在記憶體中的表現形式

1、順序結構:陣列(在一塊空間,且元素之間相鄰)

2、鏈式結構:元素之間互不相鄰,且元素之間有一定的聯絡。

2、邏輯結構:表據的聯絡(映象)

聯絡:元素之間的聯絡(映象)

邏輯結構如下:

雜湊:元素之間沒有聯絡

線性結構:節點之間的聯絡1:1,且每乙個節點只能乙個直接前驅和直接後驅

(節點元素之間的聯絡像一條線)

樹形結構:節點之間存在1:n的聯絡。(同層節點互不相連) 

圖形結構:節點之間存在n:n的聯絡。

3、線性的結構:

1、物理區:線性順序表,線性鍊錶:

線性順序表:將所有的資料存放一塊空間,且存在1:1的系            

struct people

;struct people e[48];

總結:優點:遍歷簡單  缺點:刪除和插入麻煩,長度固定 

鏈式線性表:所有節點都不在同一塊空間,但節點之間通過指標來相互聯絡

1、單向鏈式線性表:

struct node

;頭節點指標變數:存放鍊錶中第乙個節點的位址。

struct node* head;

尾節點:沒有直接後驅(指向域為next==null)

操作功能:

1、插入節點:(頭插法,尾插法:新的結點成為尾節點)

1、為節點分配空間

2、修改節點的聯絡

鍊錶棧:**如下

1 #include

2 #include

3 #include

4 #include

5 struct  student

6 ;12 struct node

13 ;

17 struct stack

18 ;

23 bool push(struct stack* ps,struct student data)

24 34 bool pop(struct stack* ps,struct student* data )

35 48 

49 50 

51 }

52 bool init(struct stack* ps)

53 void main()

58 ;

62         if(s.push(&s,s1)==true)

63        

66         struct student s2= ;

67         pop(&s,&s2);

68 69 

70 }

c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶

下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...

c語言鍊錶 鍊錶

在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...

c語言 鍊錶 C語言之鍊錶入門

鍊錶三要素 1 頭指標 head 是用來說明鍊錶開始了,頭指標就代表鍊錶本身 所以以後要訪問鍊錶,就要訪問頭指標 2 結點 node 鍊錶中每乙個結構體變數 3 尾指標 用來說明鍊錶的結束 它是乙個空指標,null include includetypedef struct stud 定義了乙個結構...