中序線索化二叉樹
1較為完整可執行程式void tree::_intree(node * root, node * &pre)
5 _intree(root->lchild, pre); //
到達當前結點的左子樹的底部左結點
6if (root->lchild ==null) //
注意下列的條件判斷, 要先判斷pre是不是空,再是 pre的其他指標域!
10if (pre != null && pre->rchild == null)
14 pre = root; //
把 pre 指向當前結點,儲存上一次訪問的結點
15 _intree(root->rchild, pre);
16 }
1 #include 2中序線索化二叉樹using
namespace
std;34
enum
flag;56
struct
node ;
1213
class
tree ;
2627
intmain()
3637
tree::tree()
4243 tree::~tree()
47delete(root);48}
4950
void tree::delete(node *root) 55}
5657 node *tree::create() else
70return
root;71}
7273
void tree::_intree(node * root, node * &pre)
77 _intree(root->lchild, pre); //
到達當前結點的左子樹的底部左結點
78if (root->lchild ==null) //
注意下列的條件判斷, 要先判斷pre是不是空,再是 pre的其他指標域!
82if (pre != null && pre->rchild == null)
86 pre = root; //
把 pre 指向當前結點,儲存上一次訪問的結點
87 _intree(root->rchild, pre);88}
8990 node *tree::getroot()
9394
void tree::show_intree(node *root)
98 node * p =root;
99while (p->ltag == child)
102 cout << p->data << "
"; //
輸出第乙個結點
103while (p->rchild != null)
107 cout <
108}
109110 node * tree::_next(node *root) else
119}
120return
p;121 }
中序線索化二叉樹
線索化二叉樹。1 中序線索化二叉樹 2 遍歷線索化二叉樹。include include define maxsize 100 typedef char elemtype using namespace std typedef struct node tbtnode 對以 p為根節點的二叉樹中序線索...
二叉樹中序線索化
處理當前結點的前驅結點 處理後序結點 param node 當前需要線索化的結點 public void threadednodes heronode node 1.先線索化左子樹 threadednodes node.getleft 2.線索化當前結點 難點 處理當前結點的前驅結點 以8結點來理解...
二叉樹的線索化 線索二叉樹的遍歷(中序)
二叉樹的線索化 對於n個節點的二叉樹,在二叉儲存鍊錶中有n 1個空鏈域,利用這些空鏈域存放某種遍歷次序下的指向該節點的前驅和後繼的指標,這些指標成為線索,被線索的二叉樹成為線索二叉樹。這種加上了線索的二叉鍊錶稱為線索鍊錶,相應的二叉樹稱為線索二叉樹 threaded binarytree 根據線索性...