1樓:匿名使用者
void mytree::preprintf(treenode * lpcurnode,typefun lpfun)
lpcurnode=lpcurnode->m_lpleft;
}if (!stack.pop(lpcurnode))
lpcurnode=lpcurnode->m_lpright;}}
void mytree::midprintf(treenode * lpcurnode,typefun lpfun)
if (!stack.pop(lpcurnode)) //出push
if (lpfun!=null)
lpcurnode=lpcurnode->m_lpright;}}
void mytree::aftprintf(treenode * lpcurnode,typefun lpfun)
if (!stack.pop(lpcurnode))
if (lpcurnode->m_lpright==null||lpcurnode->m_lpright==lpfang)
lpcurnode=null;
continue;
}else
stack.push(lpcurnode);
lpcurnode=lpcurnode->m_lpright;}}
這個要自己寫個stack
2樓:我是百人敵
定義棧:stack 操作push(stack, l) 將l壓棧 pop(stack,l) stack彈出並賦予l
while(l != 0)
pop(stack, l);
visit(l);
l = l->right;}
1用遞迴實現二叉樹的先序 中序 後序三種遍歷。2哈夫曼樹問題
在嗎?我給你。另外我有自己的實驗報告。裡面有遞迴遍歷,有迭代遍歷。可以寫檔案,可以壓縮編碼。可以讀檔案。你不需要什麼功能的話就刪去相應的函式就行了。希望加分。include include include include using namespace std const int maxlen 10...
已知二叉樹的先序遍歷和中序遍歷序列如下,構造相應的二叉樹
已知二叉樹的先序遍歷和中序遍歷序列如下,構造相應的二叉樹。1 2.3 4.5.6 7 根結點為1,則左為42,右5736,再看先根序列24 3576 左邊42在先根序列中以2為先,則1的下一層為2,再看中根序列42,所以4在2的右邊 右邊5736在先根序列中以3為先,則3的左邊是57,右邊是6 在先...
資料結構二叉樹,已知中序遍歷後序遍歷,如何求先序遍歷
preorder遍歷 訪問根節點的操作發生在遍歷左和右子樹之前。中間順序遍歷 訪問根節點的操作發生在左邊和右邊的子樹中。順序遍歷 訪問根節點的操作發生在遍歷左邊和右邊的子樹之後。解決方案 首先,看到後序遍歷dbcefgha,a是總根節點。然後發現中間順序遍歷a在edcbahfg中的位置,然後在a的左...