YTU 2344 先序遍歷二叉樹

2021-07-11 22:50:08 字數 1092 閱讀 7235

時間限制: 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

輸出每棵二叉樹的深度以及先序遍歷二叉樹得到的序列。

2

1 -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 ...