#include
#include
#include
#include
#include
typedef
struct binarytreenode* btn;
//二叉樹節點結構體;
typedef
struct binarytreenodebtnode;
typedef
struct binarytree* bt;
//二叉樹結構體;
typedef
struct binarytreebtree;
//建立新的書節點
btn createnewnode
(void);
btn createnewnode
(void
)//建立新的二叉樹
bt createbinarytree()
;bt createbinarytree()
intisempty
(bt tree)
;int
isempty
(bt tree)
return0;
}//給二叉樹中新增新的節點
void
insertvaluetree
(bt tree,
int el)
;void
insertvaluetree
(bt tree,
int el)
else
//判斷新增到左子樹還是右子樹;
if(eldata)
//小於父結點;
parent->leftchild=p;
//新增到左子樹;
else
//大於父結點;
parent->rightchild=p;
//新增到右子樹;}++
(tree->count);}
//給二叉樹一次性新增多個節點;
void
insertseveralvalue
(bt tree,
int data,
int n)
//中序遍歷;
void
inord
(btn node)
}void
inorder
(bt tree)
//構造中序線索樹
void
makethreadtree
(btnode* t,btnode* ppr)
else}if
(!t->leftchild)
else
ppr=t;
makethreadtree
(t->rightchild,ppr);}
}void
buildthreadtree
(btree* bt)
}int
main()
;insertseveralvalue
(btree2,a,9)
;inorder
(btree2)
;buildthreadtree
(btree2)
;return0;
}
C語言資料結構之線索二叉樹
線索二叉樹 對二叉樹以某種次序遍歷得到序列中的前驅和後繼,其中指向結點前驅和後繼的指標稱為線索,再加上線索的二叉樹稱之為線索二叉樹。線索化 對二叉樹以某種次序遍歷使其變成線索二叉樹的過程稱為線索化 注意 線索化是要基於一棵二叉樹上線索化,所以我們要先建樹!1 線索二叉樹的儲存結構 lchild lt...
c語言實現二叉樹資料結構
要實現任意一種資料結構,首先要考慮組成該資料結構的基本元素。二叉樹的基本組成元素是結點 又根據二叉樹的性質,每個結點都可以看成由資料項 指向左子樹的指標和指向右子樹的指標組成。二叉樹的操作要充分考慮遞迴的運用。include include 二叉樹的資料結構 typedef struct bnode...
資料結構之線索二叉樹
應用案例說明 將下面的二叉樹,進行中序線索二叉樹。中序遍歷的數列為 定義threadedbinarytree 實現了線索化功能的二叉樹 class threadedbinarytree 過載一把threadednodes方法 public void threadednodes 遍歷線索化二叉樹的方法...