問題**:
*all right reserved.
*檔名稱:線索化二叉樹.cpp
*完成日期;2023年11月10日
*版本號;v1.0
*問題描述:將二叉樹
線索化表示出來
*輸入描述:輸入二叉樹各個元素
*程式輸出:中序線索二叉樹
*/
#include #include "btree.h"
int main()
#include #include #include "btree.h"
void createtbtnode(btnode * &b,char *str)
} }
j++;
ch=str[j];
} }
void disptbtnode(btnode *b)
} }
btnode *pre; //全域性變數
void thread(btnode *&p)
else p->ltag=0;
if (pre->rchild==null) //後繼線索
else pre->rtag=0;
pre=p;
thread(p->rchild); //右子樹線索化
} }
btnode *creathread(btnode *b) //中序線索化二叉樹
return root;
}
void thinorder(btnode *tb)
p=p->rchild;
} } void createbtnode(btnode *&b,char *str) //由str串建立二叉鏈
} }
j++;
ch=str[j];
} } btnode *findnode(btnode *b,elemtype x) //返回data域為x的節點指標
} btnode *lchildnode(btnode *p) //返回*p節點的左孩子節點指標
btnode *rchildnode(btnode *p) //返回*p節點的右孩子節點指標
int btnodedepth(btnode *b) //求二叉樹b的深度
} void dispbtnode(btnode *b) //以括號表示法輸出二叉樹
} } void destroybtnode(btnode *&b) //銷毀二叉樹
} #define maxsize 100
typedef char elemtype;
typedef struct node
btnode;
void createbtnode(btnode *&b,char *str); //由str串建立二叉鏈
btnode *findnode(btnode *b,elemtype x); //返回data域為x的節點指標
btnode *lchildnode(btnode *p); //返回*p節點的左孩子節點指標
btnode *rchildnode(btnode *p); //返回*p節點的右孩子節點指標
int btnodedepth(btnode *b); //求二叉樹b的深度
void dispbtnode(btnode *b); //以括號表示法輸出二叉樹
void destroybtnode(btnode *&b); //銷毀二叉樹
void thinorder(btnode *tb);
btnode *creathread(btnode *b);
void thread(btnode *&p);
void disptbtnode(btnode *b);
void createtbtnode(btnode * &b,char *str);
執行結果:
知識點總結:
用類似於指標的方式將每個二叉樹元素指向其對應的上層節點,如此成為乙個線索,形成各種順序的序列。
學習心得:
認真寫**才好
第十一周專案一 線索化二叉樹
all right reserved.檔名稱 線索化二叉樹.cpp 完成日期 2016年11月10日 版本號 v1.0 問題描述 將二叉樹 線索化表示出來 輸入描述 輸入二叉樹各個元素 程式輸出 中序線索二叉樹 cpp view plain copy include include btree.h ...
第十一周 線索化二叉樹(中序)
all right reserved.date 2015年11月9日 版本 v1.0.1 作業系統 xp 執行環境 vc6.0 問題描述 將二叉樹進行中序線索化。include include define maxsize 100 typedef char elemtype typedef stru...
第十一周專案1 驗證演算法(中序線索化二叉樹)
煙台大學計算機與控制工程學院 完成日期 2016年11月11日 問題描述 實現二叉樹的層次遍歷演算法,並對用 a b d,e h j,k l,m n c f,g i 建立的二叉樹進行測試。輸入描述 程式輸出 csharp view plain copy include include define ...