鏈表里,頭指針 頭結(jié)點(diǎn)的作用
鏈表里,頭指針 頭結(jié)點(diǎn)的作用
鏈表里有“頭指針”變量,它存放一個(gè)地址,該地址指向一個(gè)元素。鏈表里的每個(gè)元素稱為“節(jié)點(diǎn)”。
鏈表中為什么要返回頭指針
我給你解答 鏈表:就是鏈接在一起的節(jié)點(diǎn) 你可以把他理解為九節(jié)鞭(或者車鏈子等等)為什么要返回頭指針呢:就好像你手要握著九節(jié)鞭的手柄是一樣的,你獲得了頭指針,就可以順著鏈子獲取所有節(jié)點(diǎn),當(dāng)然你也可以返回鏈子上的其他節(jié)點(diǎn),就像你手拎著中間任何一個(gè)節(jié)點(diǎn),順著此節(jié)點(diǎn)向前向后都可以獲取其他節(jié)點(diǎn),常規(guī)下還是返回頭指針。在計(jì)算機(jī)中,每個(gè)節(jié)點(diǎn)你都可以把它看成一個(gè)內(nèi)存的一個(gè)小區(qū)域,區(qū)域和區(qū)域通過指針連接(也就是上一個(gè)區(qū)域存了下一個(gè)區(qū)域的地址而已)。
頭指針也就是**個(gè)節(jié)點(diǎn)的地址而已。
描述以下三個(gè)概念的區(qū)別:頭指針、頭結(jié)點(diǎn)、首結(jié)點(diǎn),并說明在單鏈表中設(shè)置頭結(jié)點(diǎn)的作用是什么?
首節(jié)點(diǎn)就是指的頭結(jié)點(diǎn),在單鏈表中設(shè)置頭結(jié)點(diǎn)作用是為了防止單鏈表是空的。跟頭指針區(qū)別如下:
一、主體不同
1、頭指針:以確定線性表中**個(gè)元素對(duì)應(yīng)的存儲(chǔ)位置。
2、頭結(jié)點(diǎn):數(shù)據(jù)結(jié)構(gòu)中,在單鏈表的**個(gè)結(jié)點(diǎn)之前附設(shè)一個(gè)結(jié)點(diǎn),沒有直接前驅(qū)。
二、特點(diǎn)不同
1、頭指針:整個(gè)鏈表的存取就必須是從頭指針開始進(jìn)行了。之后的每一個(gè)結(jié)點(diǎn),其實(shí)就是上一個(gè)的后繼指針指向的位置。
2、頭結(jié)點(diǎn):數(shù)據(jù)域可以不存儲(chǔ)任何信息,頭結(jié)點(diǎn)的指針域存儲(chǔ)指向**個(gè)結(jié)點(diǎn)的指針。
三、作用不同
1、頭指針:用于處理數(shù)組、鏈表、隊(duì)列等數(shù)據(jù)結(jié)構(gòu)。
2、頭結(jié)點(diǎn):作用是使所有鏈表(包括空表)的頭指針非空,并使對(duì)單鏈表的插入、刪除操作不需要區(qū)分是否為空表或是否在**個(gè)位置進(jìn)行,從而與其他位置的插入、刪除操作一致。
請(qǐng)問 鏈表 linked list 為什么要定義 head啊…h(huán)ead = new node(null);之類的百科 不太明白
應(yīng)該見過鏈條吧,一環(huán)扣一環(huán), 但是總的有頭有尾,?定義的head就是頭
head = new node(null);?這里的意思就是head沒有父節(jié)點(diǎn)了, 今后如果要判斷一個(gè)節(jié)點(diǎn)是不是頭節(jié)點(diǎn),就判斷他的父節(jié)點(diǎn)是不是為空, 為空就是父節(jié)點(diǎn),?如果有父節(jié)點(diǎn)就證明他處于中間位置
同理沒有子節(jié)點(diǎn)也就證明該節(jié)點(diǎn)是**一個(gè)了.