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...