這篇“如何用C語言遞歸實現(xiàn)線索二叉樹”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“如何用C語言遞歸實現(xiàn)線索二叉樹”文章吧。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設,汝州企業(yè)網(wǎng)站建設,汝州品牌網(wǎng)站建設,網(wǎng)站定制,汝州網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,汝州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
描述:將二叉樹中結點的空左孩子指針域指向前驅結點,將空的右孩子指針域指向后繼結點。
code:
#pragma warning(disable:4996)
#include<stdio.h>
#include<stdlib.h>
typedef struct TreeNode {
char data;
struct TreeNode *lchild, *rchild;
int ltag, rtag;
}Tree,*BTree;
BTree Build_Tree(void) {
BTree T;
char ch;
scanf("%c", &ch);
if (ch == '#') {
T = NULL;
}
else {
T = (BTree)malloc(sizeof(Tree));
T->data = ch;
T->ltag = 0;
T->rtag = 0;
T->lchild = Build_Tree();
T->rchild = Build_Tree();
}
return T;
}
//先序線索化
void Pre_Thread(BTree cur, BTree *pre) {
if (cur && cur->ltag==0) {
printf("%c ", cur->data);
if (cur->lchild == NULL) {
cur->lchild = *pre;
(*pre)->ltag = 1;
cur->ltag = 1;
}
if (cur->rchild == NULL) {
cur->rtag = 1;
}
if (*pre && (*pre)->rtag == 1) {
(*pre)->rchild = cur;
}
*pre = cur;
Pre_Thread(cur->lchild, pre);
Pre_Thread(cur->rchild, pre);
}
}
//中序線索化
void In_Thread(BTree cur, BTree *pre) {
if (cur) {
In_Thread(cur->lchild, pre);
printf("%c ", cur->data);
if (cur->lchild==NULL) {
cur->lchild = *pre;
cur->ltag = 1;
}
if (cur->rtag == NULL) {
cur->rtag = 1;
}
if (*pre && (*pre)->rtag == 1) {
(*pre)->rchild = cur;
}
*pre = cur;
In_Thread(cur->rchild, pre);
}
}
//后序線索化
void Post_Thread(BTree cur, BTree *pre) {
if (cur) {
Post_Thread(cur->lchild, pre);
Post_Thread(cur->rchild, pre);
printf("%c ", cur->data);
if (cur->lchild == NULL) {
cur->lchild = *pre;
cur->ltag = 1;
}
if (cur->rchild == NULL) {
cur->rtag = 1;
}
if (*pre && (*pre)->rtag == 1) {
(*pre)->rchild = cur;
}
*pre = cur;
}
}
int main(void) {
BTree T,p=NULL;
T = Build_Tree();
Pre_Thread(T, &p);
//In_Thread(T, &p);
//Post_Thread(T, &p);
return 0;
}
以上就是關于“如何用C語言遞歸實現(xiàn)線索二叉樹”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章標題:如何用C語言遞歸實現(xiàn)線索二叉樹
瀏覽路徑:http://aaarwkj.com/article26/gjihjg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、網(wǎng)站改版、電子商務、搜索引擎優(yōu)化、小程序開發(fā)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)