0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言入門之鏈表概述

jf_78858299 ? 來源:C語言入門到精通 ? 作者:閆小林 ? 2023-03-24 15:04 ? 次閱讀

C語言鏈表概述

鏈表是一種常見的重要的數(shù)據(jù)結(jié)構(gòu)。它是動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配的一種結(jié)構(gòu),是根據(jù)需要開辟內(nèi)存單元。

鏈表有一個(gè)“頭指針”變量,它存放一個(gè)地址,該地址指向一個(gè)元素。

鏈表中每一個(gè)元素稱為“結(jié)點(diǎn)”,每個(gè)結(jié)點(diǎn)都應(yīng)包括兩個(gè)部分

  • 用戶需要的實(shí)際數(shù)據(jù)。
  • 下一個(gè)結(jié)點(diǎn)的地址。

鏈表中各元素在內(nèi)存中的地址可以是不連續(xù)的。

要找某一元素,必須先找到上一個(gè)元素,根據(jù)它提供的下一元素地址才能找到下一個(gè)元素。如果不提供“頭指針”,則整個(gè)鏈表都無法訪問。

鏈表如同一條鐵鏈一樣,一環(huán)扣一環(huán),中間是不能斷開的。

鏈表這種數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實(shí)現(xiàn),即一個(gè)結(jié)點(diǎn)中應(yīng)包含一個(gè)指針變量,用它存放下一結(jié)點(diǎn)的地址。

C語言使用鏈表輸出學(xué)號(hào)和成績(jī)

#include//頭文件
struct student //定義學(xué)生結(jié)構(gòu)體
{

int num;//學(xué)號(hào)
float score;//成績(jī)
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個(gè)結(jié)點(diǎn)的起始地址賦給頭指針head
str1.next=&str2;//將第2個(gè)結(jié)點(diǎn)的起始地址賦給第1個(gè)結(jié)點(diǎn)的next成員
str2.next=&str3;//將第3個(gè)結(jié)點(diǎn)的起始地址賦給第2個(gè)結(jié)點(diǎn)的next成員
str3.next=NULL;//第3個(gè)結(jié)點(diǎn)的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
}

編譯運(yùn)行結(jié)果:

1 90.8
2 90.0
3 85.0

--------------------------------
Process exited after 0.1073 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    源碼|學(xué)生信息管理系統(tǒng)(C語言鏈表實(shí)現(xiàn))

    源碼|學(xué)生信息管理系統(tǒng)(C語言鏈表實(shí)現(xiàn))
    發(fā)表于 11-03 10:24 ?526次閱讀

    C語言實(shí)現(xiàn)靜態(tài)鏈表的建立

    在這么卷的時(shí)代,我覺得硬件工程師還是 要掌握基本的C語言編寫能力,鏈表在學(xué)生階段是一個(gè)比較難的知識(shí)點(diǎn),可能有些同學(xué)上完一個(gè)大學(xué)都不會(huì)鏈表的編寫,但是在未來工作中,
    發(fā)表于 01-13 15:08 ?757次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>實(shí)現(xiàn)靜態(tài)<b class='flag-5'>鏈表</b>的建立

    C語言算法題:反轉(zhuǎn)一個(gè)單向鏈表

    鏈表是編程學(xué)習(xí)的一個(gè)難點(diǎn)。其實(shí),在C語言編程以及單片機(jī)裸機(jī)開發(fā)中,鏈表運(yùn)用并不多。但是如果想提升嵌入式技能水平或收入水平,可以考慮深入嵌入式系統(tǒng)層面(如參與操作系統(tǒng)設(shè)計(jì)、深入學(xué)習(xí)新的操
    發(fā)表于 06-21 11:07 ?854次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>算法題:反轉(zhuǎn)一個(gè)單向<b class='flag-5'>鏈表</b>

    C語言鏈表知識(shí)點(diǎn)(2)

    C語言鏈表知識(shí)點(diǎn)(2)
    發(fā)表于 08-22 10:38 ?333次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>鏈表</b>知識(shí)點(diǎn)(2)

    C語言鏈表

    C語言鏈表,,,
    發(fā)表于 11-07 17:19

    C語言玩轉(zhuǎn)鏈表

    C語言是必學(xué)的一個(gè)課程,不管你是單片機(jī)還是嵌入式物聯(lián)網(wǎng),都是基礎(chǔ),所以還是要好好學(xué)習(xí)的今天推薦的資料是關(guān)于C語言鏈表的資料我自己看了一下主要
    發(fā)表于 11-13 13:50

    怎么實(shí)現(xiàn)c語言循環(huán)鏈表

    怎么實(shí)現(xiàn)c語言循環(huán)鏈表?
    發(fā)表于 10-19 06:07

    C加加建立動(dòng)態(tài)鏈表

    C加加建立動(dòng)態(tài)鏈表利用C語言c++編寫程序
    發(fā)表于 11-19 13:43 ?0次下載

    C語言入門教程

    很好的C語言入門教程,可以肯定的說這個(gè)教程只是為初學(xué)或入門者準(zhǔn)備的
    發(fā)表于 01-22 14:46 ?7次下載

    C語言入門經(jīng)典-C語言編程

    C語言入門經(jīng)典-C語言編程,感興趣的可以看看哦。
    發(fā)表于 08-16 18:54 ?126次下載

    51單片機(jī)c51語言入門教程C語言入門教程

    51單片機(jī)c51語言入門教程,C語言入門教程
    發(fā)表于 08-29 15:02 ?32次下載

    C語言鏈表相關(guān)資料下載

    C語言鏈表相關(guān)資料
    發(fā)表于 03-08 10:47 ?5次下載

    c語言入門書籍推薦

    本文主要介紹c語言入門書籍,首先講解了C語言的優(yōu)點(diǎn),其次詳細(xì)的推薦了幾款適合C
    的頭像 發(fā)表于 04-13 09:52 ?4.8w次閱讀

    C語言入門教程之堆棧的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言入門教程之堆棧的詳細(xì)資料概述
    發(fā)表于 11-29 11:47 ?12次下載

    C語言_鏈表總結(jié)

    本篇文章介紹C語言鏈表相關(guān)知識(shí)點(diǎn),涉及鏈表的創(chuàng)建、單向鏈表、循環(huán)鏈表、雙向
    的頭像 發(fā)表于 08-14 09:53 ?1794次閱讀