程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C/C++單鏈表

C/C++單鏈表

編輯:關於C語言

先看例子,例1:定義鏈表

 stu 
{   int name;
age;
stu *next;
};

  

  用一組地址任意的存儲單元存放線性表中的數據元素。:以元素(數據元素的映象) + 指針(指示後繼元素存儲位置)= 結點(表示數據元素 或 數據元素的映象)

不得不說百度解釋的太官方了。

 

 

1.含義:多組不同類型的數的組合(數組存儲是不連續的)

2.組成: 表頭+結點+表尾

結點=數據域+指針域

表頭:只有指針域 表尾:只有數據域

以前老師講的還是不錯的,影響深刻,不過好像還是有點雲裡霧裡。

 

LZ所理解的鏈表

1.鏈表就是一系列結構體

2.這個結構體有一個特別的指針,類型為該結構體類型*。

 

結合例1來看很清晰,但前提是你一定要會結構體。

 

  正是如此,所以學鏈表之前一定先會結構體,而學會結構體之前一定要會用指針,又是指針。看似困難其實一點不難,一切復雜類型都是由基本類型構成的,鏈表也是如此,只不過起了一個時尚的名字。

例2:建立鏈表函數

 stu * creat( stu *head,*pf,*(i=;i<n;i++=( stu *)malloc((,i+,i+,&aa,&->name=->age=(i===head=->next==->next=


例2用到了指針函數,結構體指針,指針學好了理解起來應該不難。

 

從建立鏈表函數可以看出,

 

pb=(struct stu *)malloc(sizeof(struct stu));

這句為動態分配內存空間(上一篇文章簡要介紹了它)。每新增一個結點,就分配一個sizeof(struct stu)大小的空間,按需分配,理想共產主義有木有。

附上完整的例子,例3:

View Code


例3包括了鏈表的定義,構造鏈表的方法,鏈表的調用方法等。光會寫出例3一點用也沒有,一定要弄清楚怎麼定義\構造,怎麼賦值,怎麼使用,怎麼得到具體某一個結點,結點元素的賦值,遍歷方法,如何通過指針去訪問。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved