二叉樹的C 原始碼

2021-04-13 09:08:08 字數 1772 閱讀 5194

參考著課件,寫了乙個簡單的二叉樹,用法很簡單,方法也很少,要是誰有興趣的話,加上乙個線索二叉樹的方法,就更好了。

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的所在子樹...