C語言鏈表概述
鏈表是一種常見的重要的數(shù)據(jù)結(jié)構(gòu)。它是動態(tài)地進(jìn)行存儲分配的一種結(jié)構(gòu),是根據(jù)需要開辟內(nèi)存單元。
鏈表有一個“頭指針”變量,它存放一個地址,該地址指向一個元素。
鏈表中每一個元素稱為“結(jié)點”,每個結(jié)點都應(yīng)包括兩個部分
- 用戶需要的實際數(shù)據(jù)。
- 下一個結(jié)點的地址。
鏈表中各元素在內(nèi)存中的地址可以是不連續(xù)的。
要找某一元素,必須先找到上一個元素,根據(jù)它提供的下一元素地址才能找到下一個元素。如果不提供“頭指針”,則整個鏈表都無法訪問。
鏈表如同一條鐵鏈一樣,一環(huán)扣一環(huán),中間是不能斷開的。
鏈表這種數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實現(xiàn),即一個結(jié)點中應(yīng)包含一個指針變量,用它存放下一結(jié)點的地址。
C語言使用鏈表輸出學(xué)號和成績
#include//頭文件
struct student //定義學(xué)生結(jié)構(gòu)體
{
int num;//學(xué)號
float score;//成績
struct student *next;
};
int main()//主函數(shù)
{
struct student str1,str2,str3;//定義結(jié)構(gòu)體變量
struct student *head,*point;//定義結(jié)構(gòu)體指針變量
str1.num=1;
str1.score=90.8;
str2.num=2;
str2.score=90.0;
str3.num=3;
str3.score=85.0;
head=&str1;//將第1個結(jié)點的起始地址賦給頭指針head
str1.next=&str2;//將第2個結(jié)點的起始地址賦給第1個結(jié)點的next成員
str2.next=&str3;//將第3個結(jié)點的起始地址賦給第2個結(jié)點的next成員
str3.next=NULL;//第3個結(jié)點的next成員賦給null
point=head;
do
{
printf("%d %3.1f\\n",point->num,point->score);//輸出結(jié)果
point=point->next;
}
while(point!=NULL);
return 0;//主函數(shù)返回值為0
}
編譯運行結(jié)果:
1 90.8
2 90.0
3 85.0
--------------------------------
Process exited after 0.1073 seconds with return value 0
請按任意鍵繼續(xù). . .
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
內(nèi)存
+關(guān)注
關(guān)注
9文章
3229瀏覽量
76491 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
41672
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
C語言-鏈表(單向鏈表、雙向鏈表)
在前面章節(jié)已經(jīng)學(xué)習(xí)了數(shù)組的使用,數(shù)組的空間是連續(xù)空間,數(shù)組的大小恒定的,在很多動態(tài)數(shù)據(jù)存儲的應(yīng)用場景下,使用不方便;而這篇文章介紹的鏈表結(jié)構(gòu),支持動態(tài)增加節(jié)點,釋放節(jié)點,比較適合存儲動態(tài)數(shù)據(jù)的應(yīng)用場景,而且鏈表的空間是存儲在堆上面的,可以動態(tài)分配,釋放
源碼|學(xué)生信息管理系統(tǒng)(C語言單鏈表實現(xiàn))
源碼|學(xué)生信息管理系統(tǒng)(C語言單鏈表實現(xiàn))
發(fā)表于 11-03 10:24
?890次閱讀
C語言實現(xiàn)靜態(tài)鏈表的建立
在這么卷的時代,我覺得硬件工程師還是 要掌握基本的C語言編寫能力,鏈表在學(xué)生階段是一個比較難的知識點,可能有些同學(xué)上完一個大學(xué)都不會鏈表的編寫,但是在未來工作中,
發(fā)表于 01-13 15:08
?1194次閱讀
C語言算法題:反轉(zhuǎn)一個單向鏈表
鏈表是編程學(xué)習(xí)的一個難點。其實,在C語言編程以及單片機(jī)裸機(jī)開發(fā)中,鏈表運用并不多。但是如果想提升嵌入式技能水平或收入水平,可以考慮深入嵌入式系統(tǒng)層面(如參與操作系統(tǒng)設(shè)計、深入學(xué)習(xí)新的操
發(fā)表于 06-21 11:07
?1801次閱讀
C語言玩轉(zhuǎn)鏈表
C語言是必學(xué)的一個課程,不管你是單片機(jī)還是嵌入式物聯(lián)網(wǎng),都是基礎(chǔ),所以還是要好好學(xué)習(xí)的今天推薦的資料是關(guān)于C語言鏈表的資料我自己看了一下主要
發(fā)表于 11-13 13:50
C語言_鏈表總結(jié)
本篇文章介紹C語言鏈表相關(guān)知識點,涉及鏈表的創(chuàng)建、單向鏈表、循環(huán)鏈表、雙向
C語言入門之鏈表概述
評論