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...