時間限制: 1 sec
記憶體限制: 128 mb
提交: 3
解決: 3
給定一顆二叉樹,要求輸出二叉樹的深度以及後序遍歷二叉樹得到的序列。本題假設二叉樹的結點數不超過1000
輸入資料分為多組,第一行是測試資料的組數n,下面的n行分別代表一棵二叉樹。每棵二叉樹的結點均為正整數,資料為0代表當前結點為空,資料為-1代表二叉樹資料輸入結束,-1不作處理。二叉樹的構造按照層次順序(即第1層1個整數,第2層2個,第3層4個,第4層有8個......,如果某個結點不存在以0代替)。
輸出每棵二叉樹的深度以及後序遍歷二叉樹得到的序列。
21 -1
1 2 0 3 4 -1
1 1思想:根據資料層序建立一棵二叉樹,然後對其進行後序遍歷即可~3 3 4 2 1
**:
#include #include #include #include #include using namespace std;
typedef struct node //定義二叉樹
tbnode;
int depin;
void init(tbnode *t) //建立二叉樹
p->lchild=null; //當前節點孩子指標域設定為null
p->rchild=null;
p=(tbnode*)malloc(sizeof(tbnode));
}depin=(int)ceil(log2(real+1)); //二叉樹深度為所有節點個數加一 log2(real+1)向上取整
}void print(tbnode *t) //先序輸出二叉樹
}int main()
return 0;
}
2016 11 3 1003 二叉樹後序遍歷
思路 根據二叉樹的前序和中序得到後序,只需要在中序中找到與前序第乙個相同的節點值,即根節點,然後把它分為左右子樹遞迴即可。左子樹遞迴時前序遍歷需要去掉第乙個,右子樹遞迴時則兩個序列都要去掉根節點及其左邊的內容。include include include using namespace std s...
二叉樹的後序遍歷
1 問題描述 給出一棵二叉樹,返回其節點值的後序遍歷。給出一棵二叉樹 1 2 3返回 3,2,1 2 問題實現 與前序遍歷 中序遍歷類似。若二叉樹為空,則空操作返回。否則後序遍歷根節點的左子樹,後序遍歷根節點的右子樹,訪問根節點。3 definition of treenode class tree...
二叉樹之後序遍歷
題目 給出一棵二叉樹,返回其節點值的後序遍歷。您在真實的面試中是否遇到過這個題?yes 樣例給出一棵二叉樹,1 2 3返回 3,2,1 思路 在函式之前定義向量ss,在函式裡直接使用遞迴演算法。definition of treenode class treenode class solution ...