7 8 奇怪的二叉樹! 遞迴

2021-10-06 14:29:02 字數 2379 閱讀 5358

7-8 奇怪的二叉樹!

大家上完這週的課,對二叉樹一定有了自己的理解!最近小z遇到了一顆奇怪的二叉樹,想請求大家的幫助!

這顆二叉樹由n個互不相同的正整數組成,它有乙個很重要的特性,就是每個節點的值一定會小於它左右孩子節點的值!

比如像下面這樣:

現在小z得到了一串這種二叉樹的中序序列,但不知道怎麼把這棵樹還原出來,請大家幫幫他吧!

輸入格式:

第一行包含乙個正整數n(n<=50),表示奇怪二叉樹的節點數!

第二行包含n個正整數,表示奇怪二叉樹的中序序列!(題目保證每個值都在int的範圍內!)

輸出格式:

輸出僅一行,表示奇怪二叉樹的層序序列!序列元素之間用空格分開,行末沒有多餘空格!

輸入樣例:

在這裡給出一組輸入。例如:

108 15 3 4 1 5 12 10 18 6

輸出樣例:

在這裡給出相應的輸出。例如:

1 3 5 8 4 6 15 10 12 18

遞迴,每次暴力找最小值下標當根節點,繼續遞迴左右節點

區間[ l,

r][l,r]

[l,r]裡l==

rl==r

l==r

時是遞迴出口

#ifdef debug

#include

#include

"/home/majiao/mb.h"

#endif

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define maxn ((int)1e5+7)

#define ll long long int

#define inf (0x7f7f7f7f)

#define fori(lef, rig) for(int i=lef; i<=rig; i++)

#define forj(lef, rig) for(int j=lef; j<=rig; j++)

#define fork(lef, rig) for(int k=lef; k<=rig; k++)

#define qaq (0)

using

namespace std;

#define show(x...) \

do while (0)

void

err(

)template

<

typename t,

typename..

. a>

void

err(t a, a.

.. x)

namespace fastio

void

print()

template

<

typename t,

typename..

. t2>

inline

void

read

(t &x, t2 &..

. oth)

while

(isdigit

(ch)

) x *

= f;

read

(oth...

);}template

<

typename t,

typename..

. t2>

inline

void

print

(t x, t2.

.. oth)

while

(x/=10)

;while

(p3>=0)

putchar

(print_f[p3--])

;putchar

(' ');

print

(oth...

);}}

// namespace fastio

using fastio::print;

using fastio::read;

int n, m, q, k, a[maxn]

;struct node

}*root;

void

build

(node*

& now,

int lef,

int rig)

void

bfs()}

intmain()

二叉樹遞迴

我們來看一下二分搜尋樹的釋放,這就是乙個典型的遞迴問題 function destroy node 這個遞迴包括兩個部分,乙個是遞迴終止條件,乙個是遞迴的執行。我們知道遞迴是不斷地將當前函式壓入函式棧,如果沒有if node null return這個終止條件,當函式棧被壓滿之後就會發生棧溢位 棧的...

遞迴二叉樹

1 基本概念 1 節點 結點包含資料和指向其它節點的指標。2 根節點 樹第乙個結點稱為根節點。3 結點的度 結點擁有的子節點個數。4 葉節點 沒有子節點的節點 度為0 5 父子節點 乙個節點father指向另乙個節點child,則child為孩子節點,father為父親節點。6 兄弟節點 具有相同父...

二叉樹 遞迴

完全二叉樹 只有最後一層不滿,其餘節點都有兩個孩子,並且最後一層的節點從左向右排列,如下圖 擴充二叉樹 每個實節點都有兩個孩子,如圖 類似dfs cout data preorder recursion bt leftchild preorder recursion bt rightchild vo...