資料結構之線索二叉樹(C語言實現)

2021-10-08 23:20:37 字數 1606 閱讀 3146

#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 遍歷線索化二叉樹的方法...