Re: [問題] BST的swap

看板C_and_CPP (C/C++)作者 (一生一世我愛你)時間16年前 (2009/12/10 03:09), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
原文恕刪 我找到問題點 但是還是沒有解決 出在於 我去swap ptr array 但是ptr指到的原物件 並沒有一起跟著swap #include <stdio.h> #include <stdlib.h> int cmp(const void *a,const void *b) { return *(*(int**)a)-*(*(int**)b); } int main() { int i,a[]={5,4,3,2,1},*p[5]={NULL}; for(i=0;i<5;i++) p[i]=&a[i]; qsort(p,5,sizeof(p[0]),cmp); return 0; } 問題就在cmp return的地方 剛才用printf檢查過了,這會是a[]裡面的值 但是就是沒有swap到 難道說qsort lib並不能去處理這樣的問題嗎? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.187.61 ※ 編輯: l314520 來自: 61.227.187.61 (12/10 03:09)

12/10 03:51, , 1F
我覺得整個節點搬移Tree會亂掉 因為left和right沒改
12/10 03:51, 1F

12/10 03:52, , 2F
也許應該想想只動key值
12/10 03:52, 2F

12/10 04:46, , 3F
有想過這個非正規的偷吃步方法 在cmp裡面動手腳...
12/10 04:46, 3F
文章代碼(AID): #1B7_NWzz (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B7_NWzz (C_and_CPP)