C語言鏈表概述
鏈表是一種常見的重要的數據結構。它是動態地進行存儲分配的一種結構,是根據需要開辟內存單元。
鏈表有一個“頭指針”變量,它存放一個地址,該地址指向一個元素。
鏈表中每一個元素稱為“結點”,每個結點都應包括兩個部分
- 用戶需要的實際數據。
- 下一個結點的地址。
鏈表中各元素在內存中的地址可以是不連續的。
要找某一元素,必須先找到上一個元素,根據它提供的下一元素地址才能找到下一個元素。如果不提供“頭指針”,則整個鏈表都無法訪問。
鏈表如同一條鐵鏈一樣,一環扣一環,中間是不能斷開的。
鏈表這種數據結構,必須利用指針變量才能實現,即一個結點中應包含一個指針變量,用它存放下一結點的地址。
C語言使用鏈表輸出學號和成績
#include//頭文件
struct student //定義學生結構體
{
int num;//學號
float score;//成績
struct student *next;
};
int main()//主函數
{
struct student str1,str2,str3;//定義結構體變量
struct student *head,*point;//定義結構體指針變量
str1.num=1;
str1.score=90.8;
str2.num=2;
str2.score=90.0;
str3.num=3;
str3.score=85.0;
head=&str1;//將第1個結點的起始地址賦給頭指針head
str1.next=&str2;//將第2個結點的起始地址賦給第1個結點的next成員
str2.next=&str3;//將第3個結點的起始地址賦給第2個結點的next成員
str3.next=NULL;//第3個結點的next成員賦給null
point=head;
do
{
printf("%d %3.1f\\n",point->num,point->score);//輸出結果
point=point->next;
}
while(point!=NULL);
return 0;//主函數返回值為0
}
編譯運行結果:
1 90.8
2 90.0
3 85.0
--------------------------------
Process exited after 0.1073 seconds with return value 0
請按任意鍵繼續. . .
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內存
+關注
關注
8文章
3028瀏覽量
74076 -
數據結構
+關注
關注
3文章
573瀏覽量
40136
發布評論請先 登錄
相關推薦
C語言實現靜態鏈表的建立
在這么卷的時代,我覺得硬件工程師還是 要掌握基本的C語言編寫能力,鏈表在學生階段是一個比較難的知識點,可能有些同學上完一個大學都不會鏈表的編寫,但是在未來工作中,
發表于 01-13 15:08
?753次閱讀
C語言算法題:反轉一個單向鏈表
鏈表是編程學習的一個難點。其實,在C語言編程以及單片機裸機開發中,鏈表運用并不多。但是如果想提升嵌入式技能水平或收入水平,可以考慮深入嵌入式系統層面(如參與操作系統設計、深入學習新的操
發表于 06-21 11:07
?854次閱讀
評論