Re: [問題] 二元樹建立問題
※ 引述《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:48, 8F
→
06/28 14:50, , 9F
06/28 14:50, 9F
→
06/28 14:51, , 10F
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
討論串 (同標題文章)