C語言編程學(xué)習(xí):鏈表的來源分析

C語言是面向過程的毫深,而C++是面向?qū)ο蟮?/p>

C和C++的區(qū)別:

C是一個(gè)結(jié)構(gòu)化語言坡疼,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)不恭。C程序的設(shè)計(jì)首要考慮的是如何通過一個(gè)過程歌憨,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)着憨。

C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型务嫡,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問題域甲抖,這樣就可以通過獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣植袍。之所以說C++比C更先進(jìn)惧眠,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”。

C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣于个。之所以說C++比C更先進(jìn)氛魁,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語言本身而言厅篓,在C中更多的是算法的概念秀存。那么是不是C就不重要了,錯(cuò)羽氮!算法是程序設(shè)計(jì)的基礎(chǔ)或链,好的設(shè)計(jì)如果沒有好的算法,一樣不行档押。而且澳盐,“C加上好的設(shè)計(jì)”也能寫出非常好的東西。

C語言中的鏈表是重點(diǎn)令宿,也是難點(diǎn)叼耙,而且意義非凡。對(duì)鏈表的的抽象和恐懼是源于對(duì)它的來龍去脈的不明白粒没。所以很有必要對(duì)它的發(fā)展淵源做透徹分析筛婉。

鏈表的單位是節(jié)點(diǎn),而節(jié)點(diǎn)源于復(fù)合數(shù)據(jù)類型:結(jié)構(gòu)體癞松;

節(jié)點(diǎn)和結(jié)構(gòu)體的區(qū)別就是看是否有指針域爽撒,目的就是想找到下一個(gè)節(jié)點(diǎn);

結(jié)構(gòu)體形如:

struct Ghost

{

char name[30];

int age;

int height;

char addr[30];

};

節(jié)點(diǎn)形如:

struct Ghost

{

char name[30];

int age;

int height;

char addr[30];

struct Ghost *next;

};

現(xiàn)在來看一下創(chuàng)建1個(gè)節(jié)點(diǎn)的情況:

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 七三零响蓉,一三零硕勿,二二一 】,無論你是大牛還是小白厕妖,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)首尼!裙內(nèi)有開發(fā)工具挑庶,很多干貨和技術(shù)資料分享!

效果如下:

那么申請(qǐng)多個(gè)節(jié)點(diǎn)呢软能?如3個(gè)迎捺。

核心代碼如下:

//堆中申請(qǐng)變量

struct Ghost *g1 = (struct Ghost*)malloc(sizeof(struct Ghost));

struct Ghost *g2 = (struct Ghost*)malloc(sizeof(struct Ghost));

struct Ghost *g3 = (struct Ghost*)malloc(sizeof(struct Ghost));

//賦值

strcpy(g1->name, "聶小倩");

g1->age = 22;

g1->height = 165;

strcpy(g1->addr, "蘭若寺");

g1->next = NULL;

//賦值

strcpy(g2->name, "付清風(fēng)");

g2->age = 23;

g2->height = 166;

strcpy(g2->addr, "十里亭");

g2->next = NULL;

//賦值

strcpy(g3->name, "東方不敗");

g3->age = 24;

g3->height = 167;

strcpy(g3->addr, "黑木崖");

g3->next = NULL;

//遍歷

printf("姓名:%s ", g1->name);

printf("年齡:%d ", g1->age);

printf("身高:%d ", g1->height);

printf("地址:%s ", g1->addr);

//遍歷

printf("姓名:%s ", g2->name);

printf("年齡:%d ", g2->age);

printf("身高:%d ", g2->height);

printf("地址:%s ", g2->addr);

//遍歷

printf("姓名:%s ", g3->name);

printf("年齡:%d ", g3->age);

printf("身高:%d ", g3->height);

printf("地址:%s ", g3->addr);

效果圖:

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 七三零,一三零查排,二二一 】凳枝,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)跋核!裙內(nèi)有開發(fā)工具岖瑰,很多干貨和技術(shù)資料分享!

成功是成功了砂代,但這很原始蹋订,可以改進(jìn)的:借助成員指針的力量自動(dòng)去找下一個(gè),讓鏈起來刻伊!

對(duì)賦值做改動(dòng):

那么遍歷就可以改進(jìn)了:

效果:

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 七三零露戒,一三零,二二一 】捶箱,無論你是大牛還是小白智什,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具丁屎,很多干貨和技術(shù)資料分享荠锭!

這樣,我只要知道第1個(gè)節(jié)點(diǎn)的位置晨川,后面的就可以一股腦的扯出來证九。這就是鏈表。

特點(diǎn):鏈表是一連串節(jié)點(diǎn)鏈起來的共虑,是線性特點(diǎn)甫贯。只要拿第1個(gè)節(jié)點(diǎn),就可以把一堆的節(jié)點(diǎn)都找到看蚜。就像貪吃蛇一樣,蛇頭走到哪里赔桌,蛇身和蛇尾就跟到哪里供炎。

和數(shù)組類似,數(shù)組的第1個(gè)元素的首地址就是數(shù)組的地址疾党;鏈表的第1個(gè)節(jié)點(diǎn)的地址就是鏈表的首地址音诫;

接下來就可以封裝出操作鏈表的函數(shù)了,如:遍歷鏈表雪位,添加節(jié)點(diǎn)竭钝,刪除節(jié)點(diǎn),統(tǒng)計(jì)節(jié)點(diǎn)。

這些是C/C++能做的

服務(wù)器開發(fā)工程師香罐、人工智能卧波、云計(jì)算工程師、信息安全(黑客反黑客)庇茫、大數(shù)據(jù) 港粱、數(shù)據(jù)平臺(tái)、嵌入式工程師旦签、流媒體服務(wù)器查坪、數(shù)據(jù)控解、圖像處理宁炫、音頻視頻開發(fā)工程師偿曙、游戲服務(wù)器、分布式系統(tǒng)羔巢、游戲輔助等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末望忆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子朵纷,更是在濱河造成了極大的恐慌炭臭,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袍辞,死亡現(xiàn)場(chǎng)離奇詭異鞋仍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搅吁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門威创,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谎懦,你說我怎么就攤上這事肚豺。” “怎么了界拦?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵吸申,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我享甸,道長(zhǎng)截碴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任蛉威,我火速辦了婚禮日丹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚯嫌。我一直安慰自己哲虾,他們只是感情好丙躏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著束凑,像睡著了一般晒旅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上湘今,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天敢朱,我揣著相機(jī)與錄音,去河邊找鬼摩瞎。 笑死拴签,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的旗们。 我是一名探鬼主播蚓哩,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼上渴!你這毒婦竟也來了岸梨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤稠氮,失蹤者是張志新(化名)和其女友劉穎曹阔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隔披,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赃份,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奢米。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抓韩。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鬓长,靈堂內(nèi)的尸體忽然破棺而出谒拴,到底是詐尸還是另有隱情,我是刑警寧澤涉波,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布英上,位于F島的核電站,受9級(jí)特大地震影響啤覆,放射性物質(zhì)發(fā)生泄漏善延。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一城侧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彼妻,春花似錦嫌佑、人聲如沸豆茫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揩魂。三九已至,卻和暖如春炮温,著一層夾襖步出監(jiān)牢的瞬間火脉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工柒啤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倦挂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓担巩,卻偏偏與公主長(zhǎng)得像方援,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子涛癌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容