前序遍歷二叉樹,各位麻煩看看哪裡出了問題!

2023-02-13 15:50:07 字數 672 閱讀 4478

1樓:匿名使用者

creatbitree的缺陷:cin>>ch;

cin不接受' '所有在回車前的空格,換行符等全部忽略,導致你的函式必須建立一個無限大的二叉樹。

改進在函式頭上加一句fflush(stdin); 將cin>>ch改為scanf("%c",&ch);

scanf()會接受字元' 'fflush(stdin)的用處就是拋棄按下回車時輸入緩衝區的那個。

如果不加fflush(stdin),樓主可以在斷點除錯的時候發現每scanf一個字元後函式遞迴時scanf跳過了一次,向你的二叉樹中插入了一個廢節點。

status creatbitree(bitree &t)

return ok;

如果樓主一定要用cin >>ch;

那麼在main第一行加一句:skipws) /取消對空格,換行的跳過。

在cin>>ch前加上;清空緩衝區。

status creatbitree(bitree &t)

return ok;

int main()

2樓:匿名使用者

是否出現以下提示。

fatal error c1083: cannot open include file: 'iostream': no such file or directory

二叉樹的前序遍歷序列為A,B,C,E,F,D,G,H,中序遍

前序先遍歷根來接點,所以a為跟自接點,中序bai先遍歷左再中,所以dua接點沒有左子樹.因二叉樹的前zhi 序遍歷序列為a,daob,c,e,f,d,g,h又無左子樹,所以先遍歷的又為跟接點b 可能說的有點不清楚 依次類推吧.a b c d e f g h 根據遍歷順序慢慢思考.後續遍歷為efcgh...

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

void mytree preprintf treenode lpcurnode,typefun lpfun lpcurnode lpcurnode m lpleft if stack.pop lpcurnode lpcurnode lpcurnode m lpright void mytree m...

二叉樹的主要特點包括,二叉樹遍歷的特點是什麼

b 某些結點可以有右子樹,沒有左子樹 c 某些結點可以有左子樹,沒有右子樹 二叉樹遍歷的特點是什麼?每個結點都被訪問到,並且只訪問一次 二叉樹的遍歷有三種 三種演算法的訪問路徑是相同的.只是訪問節點的時機不同.第一次經過時訪問是先序遍歷 第二次經過時訪問是中序遍歷 第三次經過時訪問是後序遍歷 二叉樹...