演算法線索二叉樹的建立和遍歷
點選(此處)摺疊或開啟
-
typedef struct BiThrNode
-
{
-
char data;
-
struct BiThrNode *lchild, *rchild;
-
PointerTag LTag;
-
PointerTag RTag;
-
}BiThrNode, *BiThrTree;
-
-
BiThrTree pre;
-
-
void InThreading(BiThrTree p) //建立
-
{
-
if(p)
-
{
-
InThreading(p->lchild);
-
if(!p->lchild)
-
{
-
p->LTag=Thread;
-
p->lchild=pre;
-
}
-
if(!pre->rchild)
-
{
-
pre->RTag=Thread;
-
pre->rchild=p;
-
}
-
pre=p;
-
InThreading(p->rchild);
-
}
-
}
-
-
bool InOrderTraverse_Thr(BiThrTree T) //遍歷
-
{
-
BiThrTree p;
-
p=T->lchild;
-
while(p!=T)
-
{
-
while(p->LTag==Link)
-
{
-
p=p->lchild;
-
}
-
cout<<p->data;
-
while(p->RTag==Thread&&p->rchild!=T)
-
{
-
p=p->rchild;
-
cout<<p->data;
-
}
-
p=p->rchild;
-
}
-
return true;
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1145881/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中序線索二叉樹的建立與遍歷二叉樹
- 線索二叉樹的構造和遍歷二叉樹
- 中序線索二叉樹的構造和遍歷二叉樹
- 線索二叉樹【定義、應用、線索化、遍歷】二叉樹
- 樹(2)--二叉樹的遍歷(非遞迴)+線索二叉樹二叉樹遞迴
- 二叉樹排序樹的建立,遍歷和刪除二叉樹排序
- 二叉樹的建立與遍歷二叉樹
- 二叉樹的建立、前序遍歷、中序遍歷、後序遍歷二叉樹
- 線索二叉樹的線索化演算法二叉樹演算法
- 二叉樹建立,前序遍歷,中序遍歷,後序遍歷 思路二叉樹
- 二叉樹的廣度遍歷和深度遍歷()二叉樹
- 線索二叉樹的原理及建立二叉樹
- 二叉樹建立後,如何使用遞迴和棧遍歷二叉樹?二叉樹遞迴
- 二叉樹的遍歷演算法【和森林的遍歷】【PHP 原始碼測試】二叉樹演算法PHP原始碼
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 二叉樹的遍歷二叉樹
- 二叉樹的建立及遍歷(JavaScript實現)二叉樹JavaScript
- 二叉樹---遍歷二叉樹
- 二叉樹遍歷二叉樹
- 二叉樹的遍歷及常用演算法二叉樹演算法
- 建立二叉樹:層次遍歷--樹的寬度高度,後序遍歷--祖先節點二叉樹
- 二叉樹的建立與遍歷(遞迴實現)二叉樹遞迴
- 【資料結構】二叉樹的建立與遍歷資料結構二叉樹
- 二叉樹的建立、遍歷、廣義錶轉換二叉樹
- 完全二叉樹的遍歷二叉樹
- 玩轉二叉樹(樹的遍歷)二叉樹
- LintCode 前序遍歷和中序遍歷樹構造二叉樹二叉樹
- 二叉樹建立及遍歷演算法(遞迴及非遞迴)二叉樹演算法遞迴
- 二叉樹遍歷方法二叉樹
- 二叉樹遍歷 -- JAVA二叉樹Java
- JAVA遍歷二叉樹Java二叉樹
- 二叉樹的深度優先遍歷和廣度優先遍歷二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- C++樹——遍歷二叉樹C++二叉樹
- 資料結構與演算法——二叉樹的前序遍歷,中序遍歷,後序遍歷資料結構演算法二叉樹
- 演算法根據樹的前序遍歷構建二叉樹演算法二叉樹
- 遍歷二叉樹的迭代和遞迴方法二叉樹遞迴
- 二叉樹的遍歷實現二叉樹