非遞迴中序遍歷二叉樹 要求從鍵盤輸入二叉樹各結點的值,並使用二叉連結串列來儲存二叉樹使用非遞迴演算法遍

2022-07-13 23:05:36 字數 880 閱讀 7060

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