先找到了一些與單鏈表相關的概念
2.指標域:ai元素儲存指向後繼元素儲存位置的資訊
3.結點:包含資料域和指標域
4.單鏈表:每個結點只包含乙個指標域的線性表
5.頭指標(要素):鍊錶中第乙個結點的儲存位置(線性表最後乙個結點指標為空)
6.頭結點(非要素):單鏈表第乙個結點前附設乙個結點(其指標域指向第乙個結點的指標)
(若線性表是空表則頭結點的指標域為空)
鍊錶的建立
自己新學到的方法:頭插法與尾插法。
頭插法(就是你輸入的新元素得被插入到前面,而你輸入的最後乙個元素處在鍊錶的第一位:
//首先要建立乙個結構體,例如(學生資訊的結構體)
struct student
;//然後建立乙個鍊錶的結構體
typedef
struct node
node;
typedef
struct node *linklist;
//定義鍊錶linklist.這裡使得linklist==struct node *
這個是自定義函式的部分
void
createlist
(linklist *phead,
int n)
//頭插法創表返回值為空
}
思路:首先建立乙個指標pnew,為phead開闢空間,也就是讓phead這個指標指向記憶體中的乙個位置,
phead->next= null讓phead指向的空間為空,
接著進入迴圈,開始不斷地建立新的房間,pnew也不斷地指向新的空間,scanf("%d",&phead->data);表示輸入資料,
pnew->next=(*phead)->next;表示pnew->next指向了phead->next指向的空間的首位址(可以畫圖理解一下)
(*phead)->next=pnew;
(*phead)->next不再指null,指向了pnew指向的空間的首位址。
尾插法(正常的思維模式,輸出的順序就是輸入的順序):
void
createlisttail
(linklist *phead,
int n)
ptail->next=
null
;}
之前的與頭插法一樣,但在定義指標的時候定義乙個尾指標,
尾指標永遠都指向鍊錶的尾(最後乙個節點)
ptail->next=pnew;ptail->next 指向pnew 指向的空間,即指向下乙個節點
ptail=pnew;ptail後移
動態建立鍊錶及列印鍊錶 (鍊錶學習 一)
動態建立鍊錶主要思想 定義三個執行結構體型別資料的指標,head,p1,p2,當輸入的值p1 num不為0並且為第乙個節點的時候,把該節點賦給頭結點 p1這個指標,主要是用來指向剛輸入過資料的節點,p2這個指標,主要負責把p1剛輸入的資料的這個節點加到鍊錶中來。當輸入為0時程式結束,返回頭結點,具體...
單向鍊錶之建立特殊鍊錶及跑鍊錶習題
一 有關建立鍊錶 設資料集合a,其值均為正整數,無序且含有重複值。建立乙個單向鍊錶,每個結點資料域的值為資料集合的值且不重複 例a 建立後的鍊錶如下 如下 include define n 8 typedef struct nodeelemsn elemsn createlink int a int...
建立動態鍊錶
3 建立動態鍊錶 學自徐洪波c語言教程 include include 鍊錶結構體 struct node int value struct node next void creat struct node root struct node tail struct node p p struct n...