動態建立鍊錶主要思想:定義三個執行結構體型別資料的指標,head,p1,p2,當輸入的值p1->num不為0並且為第乙個節點的時候,把該節點賦給頭結點
p1這個指標,主要是用來指向剛輸入過資料的節點,p2這個指標,主要負責把p1剛輸入的資料的這個節點加到鍊錶中來。當輸入為0時程式結束,返回頭結點,具體流程如下:
當我們輸入:
1001,23,4
1002,34.5
1003,45.6
0,0
執行過程:
1.定義p1,p2並輸入1001,23,4初始化p1,然後判斷p1->num是否為0,不為0繼續執行,程式中的n為記錄節點個數
當節點數n==1的時候,把p1賦給頭結點,p2->next = p1;此時p2 = head,也就是第乙個節點
2.繼續執行,輸入1002,34.5,並初始化p1,此時n==2,執行p2->next = p1,也就是head->next = p1;就把p1新初始化的這個節點加入到鍊錶中去了,然後p2 = p1,把p2指標又移動到最後乙個節點,接續執行
3.新增第三個節點,與上面第2步一樣
4.輸入0,0建立鍊錶結束
5.呼叫print函式列印鍊錶,將頭指標傳過去,然後遍歷列印鍊錶
//初始化鍊錶
struct student;
int n;
struct student* creat(void)else
p2=p1;
p1 = (struct student*)malloc(len); //開闢動態儲存區,把初始位址賦給p1
scanf("%ld,%f",&p1->num,&p1->score);
}p2->next = null;
return(head);
}void print(struct student *head)while(p != null);
}}int main()
鍊錶(鍊錶建立)
先找到了一些與單鏈表相關的概念 2.指標域 ai元素儲存指向後繼元素儲存位置的資訊 3.結點 包含資料域和指標域 4.單鏈表 每個結點只包含乙個指標域的線性表 5.頭指標 要素 鍊錶中第乙個結點的儲存位置 線性表最後乙個結點指標為空 6.頭結點 非要素 單鏈表第乙個結點前附設乙個結點 其指標域指向第...
建立動態鍊錶
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...
建立動態鍊錶
1 所謂建立動態鍊錶是指在程式執行過程中從無到有的建立起乙個鍊錶,即乙個乙個的開闢節點和輸入各節點的資料,並建立起前後相連的關係。例 寫乙個程式建立乙個含有學生 學號 成績 資料的單向動態鍊錶。約定 學號不會為0,若輸入學號為0,則表示建立鍊錶的過程完成,該節點不應連線到鍊錶中。2 實現鍊錶輸出 首...