先看例子,例1:定義鍊錶
//定義鍊錶
struct stu ;
用一組位址任意的儲存單元存放線性表中的資料元素。:以元素(資料元素的映象) + 指標(指示後繼元素儲存位置)= 結點(表示資料元素 或 資料元素的映象)
不得不說百度解釋的太官方了。
1.含義:多組不同型別的數的組合(陣列儲存是不連續的)
2.組成: 表頭+結點+表尾
結點=資料域+指標域
表頭:只有指標域 表尾:只有資料域
以前老師講的還是不錯的,影響深刻,不過好像還是有點雲裡霧裡。
lz所理解的鍊錶
1.鍊錶就是一系列結構體
2.這個結構體有乙個特別的指標,型別為該結構體型別*。
結合例1來看很清晰,但前提是你一定要會結構體。
正是如此,所以學鍊錶之前一定先會結構體,而學會結構體之前一定要會用指標,又是指標。看似困難其實一點不難,一切複雜型別都是由基本型別構成的,鍊錶也是如此,只不過起了乙個時尚的名字。
例2:建立鍊錶函式
//建立鍊錶函式
struct stu * creat(int n)
pb->next=0;
return(head);
}例2用到了指標函式,結構體指標,指標學好了理解起來應該不難。
從建立鍊錶函式可以看出,
pb=(struct stu *)malloc(sizeof(struct stu));
這句為動態分配記憶體空間(上一篇文章簡要介紹了它)。每新增乙個結點,就分配乙個sizeof(struct stu)大小的空間,按需分配,理想共產主義有木有。
附上完整的例子,例3:
#include
#include
//定義鍊錶
struct stu
;//建立鍊錶函式
struct stu * creat(int n)
pb->next=0;
return(head);
}//列印函式
void print(int n,struct stu *a)
}//主函式
int main()
view code
例3包括了鍊錶的定義,構造鍊錶的方法,鍊錶的呼叫方法等。光會寫出例3一點用也沒有,一定要弄清楚怎麼定義\構造,怎麼賦值,怎麼使用,怎麼得到具體某乙個結點,結點元素的賦值,遍歷方法,如何通過指標去訪問。
C C 單鏈表
c c 都是利用結構體來定義鍊錶節點結構,有單鏈表,雙鏈表,迴圈鍊錶。struct listnode struct listnode createnode int n void printlist struct listnode root int main printlist root return...
C C 單鏈表
先看例子,例1 定義鍊錶 定義鍊錶 struct stu 用一組位址任意的儲存單元存放線性表中的資料元素。以元素 資料元素的映象 指標 指示後繼元素儲存位置 結點 表示資料元素 或 資料元素的映象 1.含義 多組不同型別的數的組合 陣列儲存是不連續的 2.組成 表頭 結點 表尾 結點 資料域 指標域...
單鏈表 逆置 C C
在原有鍊錶的基礎上,依次將鍊錶頭部節點摘下,然後利用頭插至新的表頭 建議 畫圖更容易理解過程 實現 如下 include include using namespace std 資料的型別 typedef int data t typedef struct nodelinknode t 初始化煉表頭...