樹堆的建立與遍歷

2021-09-12 06:52:49 字數 1628 閱讀 2826

l2-011 玩轉二叉樹 (25 分)

給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉後的層序遍歷的序列。所謂鏡面反轉,是指將所有非葉結點的左右孩子對換。這裡假設鍵值都是互不相等的正整數。

輸入第一行給出乙個正整數n(≤30),是二叉樹中結點的個數。第二行給出其中序遍歷序列。第三行給出其前序遍歷序列。數字間以空格分隔。

在一行中輸出該樹反轉後的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。

#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=1e5+5;

int z[maxn],qq[maxn],tree[maxn],ans[maxn];

queueq;

void build(int n,int zl,int zr,int qql,int qqr)

for(int i=zl;i<=zr;i++)

}}void bfs(int x)

}int main()

else

mirror=0;

get(0,n-1);

if(h.size()l2-006 樹的遍歷 (25 分)

給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。

輸入第一行給出乙個正整數n(≤30),是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。

在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。

#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=1e5+5;

int z[maxn],h[maxn],tree[maxn],ans[maxn];

queueq;

void build(int n,int zl,int zr,int hl,int hr)

for(int i=zl;i<=zr;i++)

}}void bfs(int x)

}int main()

a[i]=x;

}int main()

for(int i=1;i<=n;i++)

string s,ss,sss,ssss;

int aa,bb;

for(int i=0;i>aa;

cin>>s;

if(s=="is")tree[maxn];

void join(int x)

else y=tree[y].r;

}else

else y=tree[y].l;}}

}int l=0;

void dfs(int y)

int main()

dfs(root);

for(int i=0;ireturn 0;

}

樹的建立與層次遍歷

include include include include using namespace std typedef struct treenode treenode treenode bulidtree 普通建立一棵樹 根左右 else return t treenode bulidtreea ...

樹型結構的建立與遍歷

樹型結構的遍歷是樹型結構演算法的基礎,本程式演示二叉樹的儲存結構的建立和遍歷過程。1 編寫建立二叉樹的二叉鍊錶儲存結構的程式,並 用廣義表的形式 顯示並儲存二叉樹 2 採用二叉樹的二叉鍊錶儲存結構,編寫程式實現二叉樹的先序 中序和後序遍歷的遞迴和非遞迴演算法以及層序遍歷演算法,並顯示二叉樹和相應的遍...

二叉樹的建立與遍歷

由前序,和中序建立二叉樹,由已知的二叉樹,得到他的後序 include define telemtype char define maxsize 10 typedef enumpointerthr typedef struct bitthrnodebithrnode typedef struct s...