Re: [問題] 二元樹建立問題

看板C_and_CPP作者 (塔里克)時間10年前 (2014/06/28 02:38), 編輯推噓0(0012)
留言12則, 3人參與, 最新討論串4/4 (看更多)
※ 引述《darkcookies (D-GRAY MAN)》之銘言: : ※ 引述《cismjmgoshr (--???--)》之銘言: : : T代表現在的二元樹,Q代表現在佇列的狀態 : : 佇列的第一個元素代表下一個節點要接的位置(例如5L表示要接在5這個節點的左邊) : : 每次加入一個節點之後,就把它的子樹位置加到佇列的最後面 : : 輸入:(每3個數字代表一個節點) : : 5 1 1 4 1 0 8 1 1 11 1 1 13 0 0 4 0 1 7 0 0 2 0 0 1 0 0 : : Step 1: : : 5 1 1 ,根節點. 加入5L,5R至佇列 : : T: : : 5 : : Q: 5L 5R : struct node{ : int value; : node *left; : node *right; : }; : void createTree(int *d,int *l ,int *r ,int num,node *&root){ : node *p[num]; : queue<node *> add; : for(int x = 0; x < num; x++) : { : p[x] = new node; : p[x]->value = d[x]; : p[x]->left = NULL; : p[x]->right = NULL; : cout << "節點" << x+1 << "設值完成:" << d[x] << endl; : } : for(int x = 0;x < num; x++) : { : if(l[x]==1) : { : add.push(p[x]->left); : } : if(r[x]==1) : { : add.push(p[x]->right); : } : if(add.size()!=0) : { : add.front() = p[x+1]; : } : add.pop(); : } : cout << p[1]->left->value; : //add.push(p[0]->value); : //cout << "add[0]:" << add.front() << endl; : } : 請問為什麼我建好二元樹之後想看他節點的值一值當掉,是我記憶體配錯嗎? 小弟嘗試也遇到問題 陣列方法的二元剛成功 現在卡在結構的,貼上來求救 拜託了 ___ http://codepad.org/siacqDZL -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.235.102.50 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1403894318.A.9C7.html

06/28 02:40, , 1F
如果小錯應該不是
06/28 02:40, 1F

06/28 02:40, , 2F
剛剛家人趕我去睡
06/28 02:40, 2F

06/28 02:42, , 3F
我快速轉到手機 因為一直改在除錯 可能沒回復好
06/28 02:42, 3F

06/28 02:42, , 4F
主要是完整版也是錯 沮喪/ _\
06/28 02:42, 4F

06/28 07:21, , 5F
全形空白?
06/28 07:21, 5F

06/28 11:19, , 6F
趕你去睡是對的。
06/28 11:19, 6F

06/28 14:47, , 7F
報歉 昨天太趕 ,重寫一遍正確的在這
06/28 14:47, 7F

06/28 14:48, , 8F

06/28 14:50, , 9F
然後我用昨天錯誤的改 改完的在這
06/28 14:50, 9F

06/28 14:51, , 10F

06/28 14:52, , 11F
但還是錯 不知道跟重寫的差在那邊 那邊錯> <
06/28 14:52, 11F

06/28 15:07, , 12F
已解決....耍白癡了 哈哈
06/28 15:07, 12F
文章代碼(AID): #1JhRekd7 (C_and_CPP)
文章代碼(AID): #1JhRekd7 (C_and_CPP)