了解一下C語言里面的數(shù)據(jù)結(jié)構(gòu)——單鏈表,鏈表中的數(shù)據(jù)是以節(jié)點(diǎn)來表示的,每個(gè)結(jié)點(diǎn)的構(gòu)成:元素( 數(shù)據(jù)元素的映象) + 指針(指示后繼元素存儲位置),元素就是存儲數(shù)據(jù)的存儲單元,指針就是連接每個(gè)結(jié)點(diǎn)的地址數(shù)據(jù)。以“結(jié)點(diǎn)的序列”表示線性表稱作 線性鏈表(單鏈表) /*STU stu; stu.num = 1; strcpy(stu.name, "dear"); printf("%d\n%s\n", stu.num, stu.name); STU stu1; stu1.num = 2; strcpy(stu1.name, "至尊寶"); printf("%d\n%s\n", stu1.num, stu1.name); STU stu[30]; for (int i = 0; i < 30; i++) { stu1.num = 2; strcpy(stu1.name, "至尊寶"); }*/ STU* pHead; //sizeof(int) pHead = (STU*)malloc(sizeof(STU)); //void* malloc(Size); malloc動態(tài)開辟一塊內(nèi)存,這塊內(nèi)存的大小size,返回void*空指針類型 pHead->num = 2; strcpy(pHead->name, "至尊寶"); printf("%d\n%s\n", pHead->num, pHead->name); STU* pNew = (STU*)malloc(sizeof(STU)); pHead->pnext = pNew; pNew->num = 1; strcpy(pNew->name, "dear"); printf("%d\n%s\n", pHead->pnext->num, pHead->pnext->name); 鏈表: 鏈表:就是通過指針連接起來的一些內(nèi)存空間。 其中每一個(gè)空間叫做一個(gè)節(jié)點(diǎn)。 最后一個(gè)空間的pnext是指向空的。 1、創(chuàng)建鏈表: 1、當(dāng)鏈表節(jié)點(diǎn)為1時(shí)很簡單。 2、當(dāng)鏈表節(jié)點(diǎn)大于1時(shí),注意pTemp的變化。 2、遍歷鏈表。 1、把鏈表的頭結(jié)點(diǎn)指針作為實(shí)參傳遞給被調(diào)用函數(shù)。 2、在函數(shù)中,使用局部的指針變量去循環(huán)打印每一個(gè)節(jié)點(diǎn)的內(nèi)容。 3、注意打印的過程中,打印完一個(gè)節(jié)點(diǎn),需要移動指針的位置 3、在中間增加一個(gè)節(jié)點(diǎn)。 1、把需要增加節(jié)點(diǎn)的前面的節(jié)點(diǎn),通過局部指針找到。 2、根據(jù)鏈?zhǔn)浇Y(jié)構(gòu)的特性進(jìn)行連接。 數(shù)據(jù)結(jié)構(gòu),想學(xué)好編程的話,這個(gè)可是不可少的喲,C語言里面不僅有,C++里面也有,這部分可是很重要的,不能丟失,我今晚先寫個(gè)知識點(diǎn)吧??梢约尤?66572167,一起交流學(xué)習(xí),明天的話,用單鏈表這個(gè)知識點(diǎn)寫個(gè)項(xiàng)目。飛機(jī)大戰(zhàn)的項(xiàng)目吧,小編就暫且說到這了,大手不宜,勿噴喲。
|
|