時間限制: 1 sec
記憶體限制: 128 mb
提交: 4
解決: 3
給定一顆二叉樹,要求輸出二叉樹的深度以及先序遍歷二叉樹得到的序列。本題假設二叉樹的結點數不超過1000。
輸入資料分為多組,第一行是測試資料的組數n,下面的n行分別代表一棵二叉樹。每棵二叉樹的結點均為正整數,資料為0代表當前結點為空,資料為-1代表二叉樹資料輸入結束,-1不作處理。二叉樹的構造按照層次順序(即第1層1個整數,第2層2個,第3層4個,第4層有8個......,如果某個結點不存在以0代替),比如輸入:
1 2 0 3 4 -1得到的二叉樹如下:
12 #
3 4
輸出每棵二叉樹的深度以及先序遍歷二叉樹得到的序列。
21 -1
1 2 0 3 4 -1
1 1思想:根據資料層序建立一棵二叉樹,然後對其進行先序遍歷即可~3 1 2 3 4
**:
#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;
}
YTU OJ2344 先序遍歷二叉樹
給定一顆二叉樹,要求輸出二叉樹的深度以及先序遍歷二叉樹得到的序列。本題假設二叉樹的結點數不超過1000。輸入資料分為多組,第一行是測試資料的組數n,下面的n行分別代表一棵二叉樹。每棵二叉樹的結點均為正整數,資料為0代表當前結點為空,資料為 1代表二叉樹資料輸入結束,1不作處理。二叉樹的構造按照層次順...
先序構建二叉樹及先序遍歷二叉樹
先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...
先序構建二叉樹及先序遍歷二叉樹
先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...