程式=演算法+資料 (演算法就是處理資料的)
資料結構:
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 定義了乙個結構...