C 遍歷二叉樹問題,找了小時,還是沒找到錯誤在哪裡!請達人幫忙看下,感謝

2022-11-06 18:46:56 字數 1457 閱讀 1345

1樓:佔座專用

#include

#include

typedef struct tree

tre;

/*查詢中序根結點位置*/

int find(char c,char a,int s,int e)

/*遍歷二叉樹*/

void postorder(tre *t)

}tre * createtree(char pre,int pre_s,int pre_e,char in,int in_s,int in_e)

c=pre[pre_s]; /*c儲存根結點*/

n1=new tre;

n1->data=c;

n1->lchild=null;

n1->rchild=null;

k=find(c,in,in_s,in_e);

// printf("%d",k);

n1->lchild=createtree(pre,pre_s+1,pre_s+k-in_s,in,in_s,k-1);

n1->rchild=createtree(pre,pre_s+k-in_s+1,pre_e,in,k+1,in_e);

// printf("%c",n1->data);//測試輸出的

return n1;

}int main()

另外,結束前釋放new的空間

2樓:匿名使用者

#include

#include

#include

typedef struct tree

tre;

/*查詢中序根結點位置*/

int find(char c,char a,int s,int e)

/*遍歷二叉樹*/

void postorder(tre *t)

}tre * createtree(char pre,int pre_s,int pre_e,char in,int in_s,int in_e)

c=pre[pre_s]; /*c儲存根結點*/

n1->data=c;

n1->lchild=null;

n1->rchild=null;

k=find(c,in,in_s,in_e);

printf("%d \n",k);

n1->lchild=createtree(pre,pre_s+1,pre_s+k-in_s,in,in_s,k-1);

n1->rchild=createtree(pre,pre_s+k-in_s+1,pre_e,in,k+1,in_e);

printf("%c \n",n1->data);//測試輸出的

return n1;

}int main()

輸出: d b c a

沒看懂程式意思,不知道你要什麼結果。。能解釋下你createtree嗎

二叉樹的層次遍歷演算法,二叉樹層次遍歷怎麼進行?

建立一個佇列q 將根放入佇列 while 佇列非空 求用c語言實現二叉樹層次遍歷的遞迴演算法,謝謝!二叉樹層次遍歷怎麼進行?設計一個演算法層序遍歷二叉樹 同一層從左到右訪問 思想 用一個佇列儲存被訪問的當前節點的左右孩子以實現層序遍歷。void hierarchybitree bitree root...

c 怎麼建立資料結構中的二叉樹?還有二叉樹怎麼線索化

這個東西bai建議你去看看資料du結構中的二叉樹。zhi在c 的daostl 基礎類庫 裡是有提供直接創內建二叉樹的庫文容件的。你直接呼叫就好了。線索化也分為前序,中序,後序三種 與遍歷順序相同 二叉樹的線索化用如下方法 每個結點有五個部分 leftflag leftchild,data right...

怎麼把二叉樹遍歷用結構的形式輸出

include include include include typedef char elemtype char str 256 存放字元型二叉樹 int sk 1 二叉樹 二叉 連結串列的儲存結構 typedef struct bitnode bitree 鏈棧 佇列 型別 typedef s...