1樓:
#include
#include
#define maxsize 100
typedef char datatype;
typedef struct node /*二叉樹結點型別*/
bitree;
bitree *q[maxsize]; /*用於建立二叉樹*/
bitree *creatree(); /*函式宣告*/
int depth(bitree *);
void print(bitree *);
void print1(bitree *);
void print3(bitree *);
int main() /*主函式*/
while((ch!='c') && (ch!='c'));
system("cls");
} return 1;
}bitree *creatree()/*建立二叉樹*/
s->data = ch;
s->lchild = null;
s->rchild = null;
}rear++;
q[rear] = s; /*q[rear]指向新分配的節點,q[front]指向上一個的節點*/
if(rear == 1)
root = s; /*s為根*/
else
ch = getchar();
}return root;
}void print(bitree *t) /*先序形式輸出二叉樹*/
else
return;
}print2(bitree *t)/*中序遞迴遍歷二叉樹*/
else
return;
}void print3(bitree *t) /*後序形式輸出二叉樹*/
else
return;
} int depth(bitree *t) /*求二叉樹深度的演算法*/}
2樓:
與非遞迴遍歷二叉樹類似,多維護一個計數,入棧+1,出棧-1,到葉子節點,比較記錄最大長度。用手機回的,沒法寫**,希望對你有幫助。
二叉樹遍歷,二叉樹遍歷問題?
這個說起來 很煩 不過可以 用遞迴的思想做。因為根為1左4 2 右5 7 3 6 遞迴的思想。再在左子樹的前序中 2 為根 當然 4 就是葉子 再看中序 在右邊。右3 為根 所以子樹的左子樹 還有5 7 右 為6在遞迴。不打了 根結點為1,則左為42,右5736,再看先根序列24 3576 左邊42...
關於遞迴演算法求二叉樹深度演算法,關於求二叉樹深度的遞迴演算法
int height bitree t if 中的n應該是v。其思想是,一個節點的深度是他的兩個子節點中深度的最大值再加上1。這個演算法中u得到其左子數的深度,v獲得右子樹的深度。則這個節點的深度就是u和v中最大的再加上1。要想獲得樹的深度,就先獲得這個樹中根節點的兩個兒子的深度,比較兩個兒子的深度...
二叉樹遍歷,二叉樹的遍歷到底是怎麼遍歷的啊?
中序 先遍歷左子樹 就是245組成的那棵樹 遍歷245時也是中序 就是 425 然後走根節點 1 然後遍歷右子樹 637 連起來就是4251637 這種問題。多看幾遍書就好了吧 中序是左中右順序遍歷。把每個點都看成頭結點然後左走,遇節點就遍歷左子樹,等左邊空了,就訪問當前節點的父節點,也就是中,寫下...