色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

用c語言實現(xiàn)單鏈表的逆置,能將此程序詳細的解釋一下嗎?

呂致盈2年前15瀏覽0評論

算法的核心就是reverse函數(shù),其它的都是輔助建立鏈表和輸出鏈表的。

從數(shù)據(jù)結(jié)構(gòu)的定義來看這是一個帶頭節(jié)點的鏈表。要弄的十分明白你要耐心點畫圖看看。我簡單的說下思路:

【head是指向頭結(jié)點的】

p=head;//p最開始指向頭結(jié)點

s=p->next;//s最開始指向第一個節(jié)點

while(s->next!=NULL)//只要沒有到最后一個元素就繼續(xù)。最后一個元素的next肯定為NULL

{//進入核心了樓主

t=s->next;//用t指向s后面的那個元素

s->next=p;//把s指向她前面那個,這個時候就實現(xiàn)了逆向了。而且是就地逆向。元素都沒有動的

p=s;//然后p向后移動s

s=t;//s向后移動到p

這樣到下一輪的時候又可以講下下個再指向剛才那個下一個。一次內(nèi)推

}

s->next=p;//當最后一個的時候,還是要指向她的前一個。

head->next->next=NULL;//頭指針的下一個是指向原來的第一個。逆向后肯定是最后的那個了。所以最后的一個的next=NULL就明了了。

head->next=s;//s是逆序前的最后一個,逆序后是第一個,所以用頭指向他

畫個圖好好體會下,樓主!