#pragma once
#include
using
namespace std;
template
<
typename datatype>
struct bintreenode
;// 二叉樹
template
<
class
datatype
>
class
bintree
;
#include
"bitree.h"
template
<
class
datatype
>
bintree
::bintree()
template
<
class
datatype
>
bintree::~
bintree()
/*前序遍歷序列構造二叉樹遞迴
*/template
<
class
datatype
>
bintreenode
* bintree
::create
(bintreenode
* bt)
else
return bt;}/*
銷毀結點
*/template
<
class
datatype
>
void bintree
::destory
(bintreenode
* bt)}/*
遞迴演算法求樹的深度
*/template
<
class
datatype
>
int bintree
::depth
(bintreenode
* bt)
// 左子樹深度
int ldepth =
depth
(bt-
>lchild)
;// 右子樹深度
int rdepth =
depth
(bt-
>rchild)
;// 取左右子樹深度較大的值;根結點佔一成, 所以要+1
return ldepth > rdepth ? ldepth +
1: rdepth +1;
}/*訪問結點
*/template
<
class
datatype
>
void bintree
::vistied
(bintreenode
* bt)
template
<
class
datatype
>
void bintree
::preorder()
template
<
class
datatype
>
void bintree
::inorder()
template
<
class
datatype
>
void bintree
::postorder()
// 前序非遞迴遍歷
template
<
class
datatype
>
void bintree
::npreorder()
// 根節點入棧
stack[
++top]
= root;
// 如果棧不為空
while
(top >-1
)}}// 中序非遞迴遍歷
template
<
class
datatype
>
void bintree
::ninorder()
else}}
// 後續非遞迴遍歷
template
<
class
datatype
>
void bintree
::npostorder()
/*前序遍歷遞迴演算法
*/template
<
class
datatype
>
void bintree
::preorder
(bintreenode
* bt)
// 結束遍歷
return;}
/*中序遍歷遞迴演算法
*/template
<
class
datatype
>
void bintree
::inorder
(bintreenode
* bt)
// 結束遍歷
return;}
/*後續遍歷遞迴演算法
*/template
<
class
datatype
>
void bintree
::postorder
(bintreenode
* bt)
return;}
/*層序遍歷
*/template
<
class
datatype
>
void bintree
::levelorder()
// 建立乙個指標陣列模擬佇列
bintreenode
* queue[50]
;// 隊首指標
int front =-1
;// 對尾指標
int rear =-1
;// 根結點入隊
queue[
++rear]
= root;
// 如果佇列不為空
while
(front != rear)
// 如果存在右孩子結點, 則右孩子結點入隊
if(p-
>rchild !=
null)}
return;}
// 樹的深度
template
<
class
datatype
>
int bintree
::depth()
資料結構二叉樹的鏈式儲存
include stdio.h define type struct student define null 0 define len sizeof struct student struct student type create2tree char str j ch str j return n...
資料結構 鏈式二叉樹
include using namespace std typedef struct treenode treenode,treep 初始化二叉樹 void init tree treep root 前序遍歷二叉樹 void pre order treep rt 中序遍歷二叉樹 void mid o...
資料結構 鏈式二叉樹
define error 0 define true 1 define false 0 status是函式的型別,其值是函式結果狀態 如ok等 typedef int status typedef int telementtype ifndef bitree h included define bi...