1樓:匿名使用者
#include
#include
typedef struct tnodebtree;
typedef btree *elem;
typedef struct __stack_node stack;
int create_stack( stack **s)int empty_stack(stack *s)int push(stack *s, elem e)int pop(stack *s, elem *e)int gettop(stack *s, elem *e)static int i;
char t = ;
int create_b_tree(btree **root)*root = (btree *)malloc(sizeof(btree));
if(!*root)
return -1;
(*root)->data = val;
create_b_tree(&(*root)->left);
create_b_tree(&(*root)->right);
return 0;
}int display_b_tree(btree *t)/* use stack pre order */int preordertree(btree *t)return 0;
// printf("%c ", p->data);
if(!empty_stack(s))
}return 0;
}int inordertree2(btree *t)else
}return 0;
if(p->right == null || p->right == q)
else
}return 0;
}int main()
inordertree2這人函式中使用stack, 你可引數一下。
二叉樹的遍歷究竟有何用途?
2樓:匿名使用者
二叉樹遍歷分為三種:前序遍歷、中序遍歷和後序遍歷。前序遍歷主要是將所有資料展示,中序遍歷就是排序了,後序遍歷可用於刪除節點
3樓:heart浩皛
一般二叉樹都是通過擴充套件二叉樹的前序序列來建立。這個題目的建立方式有點臃腫。由於資訊很冗餘,題目也沒有要求建立二叉連結串列,這兒直接用陣列順序儲存就可以了。
struct node; node arr[20]; int n=0; using namespace std; void preordertraverse(int a) {
二叉樹的前序遍歷序列為A,B,C,E,F,D,G,H,中序遍
前序先遍歷根來接點,所以a為跟自接點,中序bai先遍歷左再中,所以dua接點沒有左子樹.因二叉樹的前zhi 序遍歷序列為a,daob,c,e,f,d,g,h又無左子樹,所以先遍歷的又為跟接點b 可能說的有點不清楚 依次類推吧.a b c d e f g h 根據遍歷順序慢慢思考.後續遍歷為efcgh...
二叉樹的主要特點包括,二叉樹遍歷的特點是什麼
b 某些結點可以有右子樹,沒有左子樹 c 某些結點可以有左子樹,沒有右子樹 二叉樹遍歷的特點是什麼?每個結點都被訪問到,並且只訪問一次 二叉樹的遍歷有三種 三種演算法的訪問路徑是相同的.只是訪問節點的時機不同.第一次經過時訪問是先序遍歷 第二次經過時訪問是中序遍歷 第三次經過時訪問是後序遍歷 二叉樹...
C二叉樹遍歷函式中的Visit是什麼
可以是輸出結點,也可以是計算結點 當你先序遍歷時,他就可以是輸出結點 visit函式就是你對查詢到的節點的具體操作,比如輸出啊之類的,根據自己的實際情況書寫 c 實現二叉樹中的visit函式是如何定義的?應該沒錯,就是想輸出結點資料唄,直接cout。visit函式是對資料元素操作的具體函式。比如您要...