參考著課件,寫了乙個簡單的二叉樹,用法很簡單,方法也很少,要是誰有興趣的話,加上乙個線索二叉樹的方法,就更好了。
kakabtree btree("-(+(a,*(b,-(c,d))),/(e,f))");//用廣義表,表示法輸入
btree.preorder();//前序遍歷
btree.inorder();//中序遍歷
btree.postorder();//後序遍歷
cout#pragma
once
#include
<
string
>
#include
<
vector
>
#include
<
iostream
>
using
std::
string
;typedef
struct
note}*
pnote;
class
kakabtree;
kakabtree.cpp
#include
"kakabtree.h
"#define
max(a,b) ((a)>(b)?(a):(b))
using
std::vector;
using
std::
string
;using
std::cout;
using
std::endl;
kakabtree::kakabtree(
void
):bt(0)
kakabtree::kakabtree(
string
s):bt(0)
kakabtree::
~kakabtree(
void
)void
kakabtree::init(
string
s)void
kakabtree::clear(
void
)void
kakabtree::iner_clear(pnote pn)
}void
kakabtree::create(
strings);
lr lr=l;
bt=newnote(s[
0]);
pnote t_p
=bt;
for(
string
::size_type i=1
;i!=
s.size();
++i)
else}}
}void
kakabtree::preorder(
void
)void
kakabtree::iner_preorder(pnote pn)
}void
kakabtree::inorder(
void
)void
kakabtree::iner_inorder(pnote pn)
}void
kakabtree::postorder(
void
)void
kakabtree::iner_postorder(pnote pn)
}int
kakabtree::depth(
void
)int
kakabtree::iner_depth(pnote pn)
else}
二叉樹遍歷演算法和原始碼
1.二叉樹幾種遍歷方法 1 先 根 序遍歷的 遞迴演算法 定義 若二叉樹非空,則依次執行如下操作 訪問根結點 遍歷左子樹 遍歷右子樹。2 中 根 序遍歷的遞迴演算法定義 若二叉樹非空,則依次執行如下操作 遍歷左子樹 訪問根結點 遍歷右子樹。3 後 根 序遍歷得遞迴演算法定義 若二叉樹非空,則依次執行...
二叉搜尋樹C 實現原始碼
二叉搜尋樹的性質是 對樹中的每個結點x,它的左子樹的值小於x,它的右子樹的值大於x。binarytree.h include utility.h typedef struct treenode ptrtonode typedef struct treenode position typedef st...
二叉樹 二叉樹
題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...