在二叉樹的遍歷過程中,棧被用來記錄什麼資料?有什麼用途

2021-05-15 23:09:30 字數 1442 閱讀 1819

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函式是對資料元素操作的具體函式。比如您要...