資料型別
(1)結構型
結構體是系統提供給程式設計師製作新的資料型別的一種機制。
eg:製作乙個由不同型別的變數組成的陣列
typedef struct
typea;
typea a; //定義了乙個陣列,a.a a.b a.c分別對應於結構體變數a的第一第二第三個元素的值
typea a[3]; //定義了乙個二維陣列,a[0].a a[0].b ...
(2)指標型
每種資料型別的指標都有特定寫法
int *a;
char *b;
float *c;
typea *d;
若指標型變數a已指向變數b
*a就是取變數b的內容(x=*a;等價於x=b)
&b就是取變數b的位址(a=&b;就是將變數b的位址存於a中,即指標a指向b)
指標型用的最多的就是和結構型結合起來構造結點(如鍊表的結點、二叉樹的結點等)
(3)結點的構造
要構造一種結點,必須先定義結點的結構型別。
鍊錶結點的結構型定義:
typedef struct node
node;
2)二叉樹結點的定義
在鍊錶結點結構型的基礎上,再加上乙個指向自己同一型別變數的指標域
typedef struct btnode
btnode;
二叉樹結點製作的寫法:
① btnode bt;
② btnode *bt;
bt = (btnode*) malloc (sizeof(btnode)); //熟練掌握
解析②製作過程:
先定義乙個結點指標bt,然後用函式malloc()申請乙個結點的記憶體空間,最後讓指標bt指向這片記憶體空間。
//考研資料結構中所有型別結點的記憶體分配都可以用函式malloc()完成
tip:動態申請陣列空間的方法,可認為是一次申請一組結點,語法如下(假設申請的陣列內的元素為int型,長度為n)
int *p;
p = (int *) malloc (n * sizeof(int));
獲取元素時和一般陣列一樣,如第二個元素,可寫為p[1]。
回到二叉樹結點,若想取資料域的值賦給x,①寫為x=bt.data; 而②則寫為x=bt->data;
對於②中的bt指標,用「.」取data值:(*bt).data;(與bt->data等價)
(4)關於typedef:可理解為給現有的資料型別起乙個新名字
如給int起乙個新名字a,可寫為 typedef int a;
資料結構學習筆記 資料型別和抽象資料型別
1.資料型別 資料型別是指 一組性質相同的值和定義在此集合上面的一組操作的總和,是某種程式語言中已實現的資料結構。1.自動變數,就是我們c中類似 int c 4 c這樣得的變數,在超出其作用範圍時會自動釋放其記憶體空間。2.指標型別。3.陣列型別。4.結構體型別。結構體定義方式struct teac...
考研筆記 資料結構之順序表
線性表定義 長度為n的有序元祖。當n 0時稱為空表。線性表的基本操作是插入和刪除。線性表的順序表示指的是用一組位址連續的儲存單元一次儲存線性表的資料元素。線性表的順序儲存結構是一種隨機訪問的儲存結構。線性表第i個資料元素ai的儲存位置是 loc ai loc a1 i 1 l l為每個元素需占用的儲...
考研筆記 資料結構之鍊錶
線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素。這組儲存單元可以是連續的,也可以是不連續的 線性表的鏈式儲存是一種非隨機儲存結構,但是方便插入和刪除。單鏈表的每個結點中只包含乙個指標域,指向下乙個結點。typedef struct slnode node,linklist 構造...