C++基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)之鏈表 基礎(chǔ)(上)
前言:
鏈表,C++基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)之一。區(qū)別于數(shù)組的順序存儲(chǔ),鏈表為鏈?zhǔn)酱鎯?chǔ),這讓鏈表比數(shù)組更加靈活,添加、刪除元素更加高效(當(dāng)然也更難),而且不需要想數(shù)組一樣設(shè)定長(zhǎng)度,所以更適合面對(duì)未知長(zhǎng)度的數(shù)據(jù)。想要學(xué)習(xí)鏈表,需要先學(xué)習(xí)結(jié)構(gòu)體和指針。
結(jié)構(gòu)體:
?????? 簡(jiǎn)單來說,最基礎(chǔ)的結(jié)構(gòu)體就是基于基礎(chǔ)數(shù)據(jù)類型自己創(chuàng)造出一種數(shù)據(jù)類型。這種數(shù)據(jù)類型可以理解為許多基礎(chǔ)數(shù)據(jù)類型的變量(例如:int a;)或數(shù)組用502粘到一起。結(jié)構(gòu)體也需要聲明,關(guān)鍵字是struct。
?


聲明結(jié)構(gòu)體之后就可以聲明一個(gè)Node(結(jié)構(gòu)體名字)類型的變量或數(shù)組了。

下一步是賦值。對(duì)于一個(gè)結(jié)構(gòu)體變量,需要分別給結(jié)構(gòu)體內(nèi)的變量(例如上圖中的a和b)賦值,語(yǔ)法為:cin >> one_structure(結(jié)構(gòu)體變量名).a(結(jié)構(gòu)體內(nèi)的變量名);

“.”可以理解為“的”的意思。
指針:
??? 指針:一個(gè)讓無數(shù)C++學(xué)習(xí)者止步的東西。在學(xué)習(xí)它之前,你起碼要知道程序運(yùn)行時(shí)涉及到的數(shù)據(jù)全都暫時(shí)貯存在內(nèi)存中,這也就意味著所有已經(jīng)聲明的變量、數(shù)組中的數(shù)據(jù)在內(nèi)存中都有其相應(yīng)的位置,而指針就是專門用來存貯對(duì)應(yīng)數(shù)據(jù)地址的數(shù)據(jù)結(jié)構(gòu)。
?? 指針通常存貯某個(gè)變量的地址,所以知道了某個(gè)變量的指針就是知道了那個(gè)變量的地址,知道了變量的地址就可以找到對(duì)應(yīng)的數(shù)據(jù)進(jìn)行修改或是讀取。聽起來是不是很想變量名和數(shù)組名?其實(shí)它們也可以理解為指針。(其實(shí)不是,變量名對(duì)應(yīng)的是值,指針對(duì)應(yīng)的只是地址)
??? 指向不同種類變量的指針是不一樣的:

當(dāng)然,也可以指向結(jié)構(gòu)體:

結(jié)語(yǔ):
???? 看到這兩個(gè)字是不是有一種被騙的感覺?其實(shí)正菜在下一篇文章,這六百多字只是開胃。第一次寫這種文章,如有錯(cuò)誤往各路大佬指出。