精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • 關(guān)于數(shù)據(jù)結(jié)構(gòu)線性鏈表中的指針后移和刪除結(jié)點(diǎn)的疑問

    關(guān)于數(shù)據(jù)結(jié)構(gòu)線性鏈表中的指針后移和刪除結(jié)點(diǎn)的疑問
    我想問問指針后移和刪除元素是不是一回事?
    比如在線性鏈表中有三個(gè)結(jié)點(diǎn)A、B、C
    A指向B,B指向C
    那么A->next=A->next->next;(刪除B結(jié)點(diǎn),這里我想問問,是不是這兒一定要加個(gè)free(B)才算刪除B結(jié)點(diǎn)?)
    與B=B->next;(指針后移)
    是不是都是一回事,把B結(jié)點(diǎn)刪除了.
    假如是一回事的話,那么算法
    Status Insert(LinkList &L,int i,int b)//在無頭結(jié)點(diǎn)鏈表L的第i個(gè)元素之前插入元素b
    {
    p=L;
    q=(LinkList*)malloc(sizeof(LNode));
    q.data=b;
    if(i==1)
    {
    q->next=p;
    L=q; //插入在鏈表頭部
    }
    else
    {
    while(--i>1)
    p=p->next;
    q->next=p->next;
    p->next=q; //插入
    }
    }//Insert
    里面的
    while(--i>1)
    p=p->next;
    實(shí)際上也就是在一直刪除結(jié)點(diǎn)咯?
    那不就是做了多余的事情嗎?要求的只是“在無頭結(jié)點(diǎn)鏈表L的第i個(gè)元素之前插入元素b”,可結(jié)果插入是插入了,卻刪除了許多的結(jié)點(diǎn).
    十分不解,期待回答.(是在沒分了,想給也給不了.)
    是不是這樣一回事
    A->next是存儲了結(jié)點(diǎn)A的后繼結(jié)點(diǎn)的位置.
    那么 A->next =A->next->next的意思就是改變了這個(gè)位置,A的后繼結(jié)點(diǎn)變成了C.
    而B=B->next,就是讓指針B指向了B的后繼結(jié)點(diǎn),但因?yàn)锳的指針域無變化,所以B仍然是A的后繼結(jié)點(diǎn).
    最后我還想問個(gè)問題,兩個(gè)結(jié)點(diǎn)之間比如一個(gè)結(jié)點(diǎn)A和B,只要A->next所儲存的是B的位置,無論有沒有指針指向B,B就是A的后繼結(jié)點(diǎn).
    其他人氣:208 ℃時(shí)間:2020-03-30 07:40:18
    優(yōu)質(zhì)解答
    那么A->next=A->next->next;(刪除B結(jié)點(diǎn),這里我想問問,是不是這兒一定要加個(gè)free(B)才算刪除B結(jié)點(diǎn)?)
    首先 A->next =A->next->next意思只是將A的指針指向C 不是說 刪除B B在內(nèi)存中還是存在的 只是和A C失去了前后繼的關(guān)系用free 來釋放B節(jié)點(diǎn)
    而后面的p=p->next 不是刪除節(jié)點(diǎn),而是使得指針p向后移動 明白嗎
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點(diǎn),以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版