c語言關於刪除指定節點的問題,刪除第i個節點

2022-12-18 08:16:06 字數 2141 閱讀 5508

1樓:匿名使用者

void deletenode(int i,struct nu *head)

上面是正確**。

因為p開始指向頭節點,也就是第一個節點,那麼移動一次,p指向是第二個節點;

所以你的** k=0,1,2,。。。,i-1,移動了i-1次,p已經指向第i個節點了,而不是指向i-1個節點。

並且是在執行完成**後,再移動位置,k再加1

2樓:匿名使用者

那是因為你的*p在定義的時候本身就是null 所以就沒有進for迴圈~

是因為你少了一句,你再試試看 。

void deletenode(int i,struct nu *head)

//用這個迴圈找到第i-1個節點

q=p->next; //q指向第i個節點

p->next=q->next; //第i-1個節點和第i+1個節點連起來

free(q);}

3樓:匿名使用者

for(k=0,p=head ;knext),先試一下吧,我的水平也不高,希望可以幫上你

c語言,關於連結串列刪除的問題。 我想刪除某一個節點,就必須獲取當前指向節點的上一個節點的地址,有什

4樓:物理公司的

連結串列無法直接獲得某一個點的位置,需要從頭開始,只能從頭開始尋找。

需要的話就是雙向連結串列

5樓:微俊

。。。。你找個變數一個儲存當前的 一個儲存前一個的

c語言關於連結串列刪除某個節點的問題,不知道寫法,麻煩指點

6樓:

struct node *delete(struct node* head)//刪除函式

pre = q;

q = q->next;

}return head;}

寫一個刪除指定節點的函式(c語言)

7樓:匿名使用者

用兩個指標,p,qp指向該結點的前驅,p指向該結點,然後 p->next=q->next;就刪除成功了~~

8樓:匿名使用者

那你的資料結構是怎麼樣設計的。你的連結串列型別是什麼你都沒說,怎麼設計啊?

c語言,刪除指定段節點函式。 15

9樓:匿名使用者

p1 = head;

p = head->next;

while(p->next != null)//當連結串列下個節點不是末尾時

else //尋找下一個節點}

10樓:波仔彩虹天

第一個迴圈應該用while語句,然後把p2->next的值賦給p1就行了,p1指標直接跨越你想刪除的節點段。

11樓:匿名使用者

p2->next=p1

c語言 關於刪除結點 10

12樓:風雷九州

person * del(person * head,int a)else if((temp->age)==a)p->next=temp->next;

else

p=p->next;

}return head;

}person * del(person * head,int a)else

}else

}return head;}

c語言,刪除連結串列中指定值的節點

13樓:琴風夜揚

刪除連結串列中的一個結點,要把前一個結點和後一個結點連起來,你光刪除沒有連起來。

liste delister (liste liste, int v)

else

}if(!flag)

printf("v isn't in the list");

return liste;}

14樓:匿名使用者

格式真彆扭啊,能不能搞清楚點

關於連結串列插入刪除節點的問題

問等號兩邊互換這種問題還真少見。一般見的也就是某兩句的位置能否互換 s next p next 新結點指標域指向p的後繼結點 不能互換。你可以看到這句語句的上隔上一個語句s linklist malloc sizeof lnode 它是新malloc出來的,s裡面的東西都是 垃圾值 你如果把s的指標...

c語言陣列刪除問題,C語言中刪除一個陣列元素

可是那要是刪除陣列最後一個元素要怎麼弄?忽略最後一個元素,陣列長度變小一個就可以了,不用動這個資料。include void del num int a int n,int cnt else p a i cnt flag int main int n cnt cnt 8 8個元素 scanf d n...

關於C語言scanf 的問題,關於C語言scanf 的一個問題

回車 也是一個字元,編譯器把 回車 賦給了x。這也是使用字元特別之處要注意。另外編譯器有些智慧,先執行了scanf c x 再執行printf 請輸入x 而scanf c x 放在後面,回車 執行的是它原來特有的功能。在這個程式中的 printf 請輸入a scanf d a printf 請輸入x...