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