C语言——链表笔记
我們至少可以用兩種方式存儲(chǔ)數(shù)據(jù)
1、數(shù)組
優(yōu)點(diǎn):存儲(chǔ)速度快
缺點(diǎn):需要一個(gè)連續(xù)的很大的內(nèi)存;插入和刪除元素的效率很低。
數(shù)組每個(gè)單元只存儲(chǔ)元素的實(shí)際值
2、鏈表
優(yōu)點(diǎn):插入刪除元素的效率高;不需要一個(gè)連續(xù)大的內(nèi)存
缺點(diǎn):查找元素效率低
鏈表每個(gè)單元分兩部分,左邊存儲(chǔ)實(shí)際元素值,右邊存儲(chǔ)下一個(gè)元素的指針
鏈表術(shù)語(yǔ):
頭結(jié)點(diǎn):頭結(jié)點(diǎn)的數(shù)據(jù)類(lèi)型和首節(jié)點(diǎn)的類(lèi)型一樣;頭結(jié)點(diǎn)是首節(jié)點(diǎn)前面的那個(gè)節(jié)點(diǎn);頭結(jié)點(diǎn)并不存儲(chǔ)有效數(shù)據(jù);設(shè)置頭結(jié)點(diǎn)的目的是為了方便對(duì)鏈表的操作
頭指針:存放頭結(jié)點(diǎn)地址的指針變量;知道頭指針就可以不用知道頭結(jié)點(diǎn)(*頭指針 == 頭結(jié)點(diǎn))
首節(jié)點(diǎn):存放第一個(gè)有效數(shù)據(jù)的節(jié)點(diǎn);知道首節(jié)點(diǎn)就可以不用知道尾節(jié)點(diǎn)(因?yàn)槲补?jié)點(diǎn)的指針域(右側(cè))為空)
尾節(jié)點(diǎn):存放最后一個(gè)有效數(shù)據(jù)的節(jié)點(diǎn)
確定一個(gè)數(shù)組需要兩個(gè)參數(shù):數(shù)組的首地址,數(shù)組的長(zhǎng)度
確定一個(gè)鏈表只需要一個(gè)參數(shù):頭指針
頭指針和頭結(jié)點(diǎn)的異同:
頭指針是指鏈表指向第一個(gè)節(jié)點(diǎn)的指針,若鏈表有頭結(jié)點(diǎn),則是指向頭結(jié)點(diǎn)的指針;
頭指針具有標(biāo)識(shí)作用,所以常用頭指針冠以鏈表的名字;
無(wú)論鏈表是否為空,頭指針均不為空。頭指針是鏈表的必要元素。
頭結(jié)點(diǎn)是為了操作的統(tǒng)一和方便而設(shè)立的,放在第一元素的節(jié)點(diǎn)之前,其數(shù)據(jù)域一般無(wú)意義(也可存放鏈表的長(zhǎng)度);
有了頭結(jié)點(diǎn),對(duì)在第一元素節(jié)點(diǎn)前插入節(jié)點(diǎn)和刪除節(jié)點(diǎn),其操作與其它結(jié)點(diǎn)的操作就統(tǒng)一了;
頭結(jié)點(diǎn)不一定是鏈表的必要元素。
總結(jié)
- 上一篇: 宁波银行贷款利率
- 下一篇: 2018程序员不能错过的编程挑战网站 T