非遞迴構造二叉樹

2021-08-21 20:54:07 字數 482 閱讀 1234

利用遞迴很容易就能夠構造二叉樹,但是利用非遞迴方法就不那麼容易。非遞迴方式構建二叉樹需要用到棧的結構,在這裡梳理一下思路。

#include #include #include using namespace std;

class binode

; binode(char c) :val(c) {};

char val;

binode* left = null;

binode* right = null;

};binode* addtree(string str)

id++;

} else

else

id++;

}else

}} return root;

}void printtree(binode* root)

if (root->right != null)

}}

二叉樹 遞迴 非遞迴

include include include include using namespace std typedef struct node bintree typedef struct node1 btnode void creatbintree char s,bintree root 建立二叉...

非遞迴二叉樹

由於棧和遞迴原理相同,且遞迴建立二叉樹的效率較低,所以我們可以借助棧來實現二叉樹的非遞迴建立以及遍歷。include include using namespace std template struct binarytreenode template class binarytree binary...

二叉樹的構造,遞迴遍歷,非遞迴遍歷

二叉樹的非遞迴遍歷在面試的時候也會問到,好像後續的非遞迴遍歷比較麻煩,我沒有進一步了解,只實現了前序和中序的非遞迴遍歷。前序 根節點,左孩子,右孩子 中序 左孩子,根節點,右孩子 後序 左孩子,右孩子,根節點 include include include using namespace std s...