作者在 2011-05-24 18:59:18 发布以下内容
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
标题: | 由顺序方式存储的完全二叉树进行重建 |
时 限: | 1000 ms |
内存限制: | 3000 K |
总时限: | 3000 ms |
描述: | 按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。 注:数字“0”表示不存在此结点,没有孩子结点 |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
来源: |
按顺序方式存储的一棵完全二叉树的结点记录,结点个数为n。根据所输入的顺序结构的结点记录建立二叉树,输出树的先序,中序和后序遍历结果。
注:数字“0”表示不存在此结点,没有孩子结点
注:数字“0”表示不存在此结点,没有孩子结点
10
1 2 0 3 4 0 0 5 6 7
1 2 0 3 4 0 0 5 6 7
#include<stdio.h>
#include<stdlib.h>
#define MAX 100000
typedef int Sqbitree[MAX];
void CreateBiTree(Sqbitree s,int n);
void PreTraverse(Sqbitree s,int e);
void InTraverse(Sqbitree s,int e);
void PostTraverse(Sqbitree s,int e);
int main()
{
Sqbitree s;
int n;
scanf("%d",&n);
CreateBiTree(s,n);
PreTraverse(s,0);
printf("\n");
InTraverse(s,0);
printf("\n");
PostTraverse(s,0);
printf("\n");
return 0;
}
void CreateBiTree(Sqbitree s,int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
for(i=n;i<MAX;i++)
{
s[i]=0;
}
}
void PreTraverse(Sqbitree s,int e)
{
printf("%d ",s[e]);
if(s[2*e+1]!=0)
PreTraverse(s,2*e+1);
if(s[2*e+2]!=0)
PreTraverse(s,2*e+2);
}
void PostTraverse(Sqbitree s,int e)
{
if(s[2*e+1]!=0)
PostTraverse(s,2*e+1);
if(s[2*e+2]!=0)
PostTraverse(s,2*e+2);
printf("%d ",s[e]);
}
void InTraverse(Sqbitree s,int e)
{
if(s[2*e+1]!=0) InTraverse(s,2*e+1);
printf("%d ",s[e]);
if(s[2*e+2]!=0) InTraverse(s,2*e+2);
}
#include<stdlib.h>
#define MAX 100000
typedef int Sqbitree[MAX];
void CreateBiTree(Sqbitree s,int n);
void PreTraverse(Sqbitree s,int e);
void InTraverse(Sqbitree s,int e);
void PostTraverse(Sqbitree s,int e);
int main()
{
Sqbitree s;
int n;
scanf("%d",&n);
CreateBiTree(s,n);
PreTraverse(s,0);
printf("\n");
InTraverse(s,0);
printf("\n");
PostTraverse(s,0);
printf("\n");
return 0;
}
void CreateBiTree(Sqbitree s,int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
for(i=n;i<MAX;i++)
{
s[i]=0;
}
}
void PreTraverse(Sqbitree s,int e)
{
printf("%d ",s[e]);
if(s[2*e+1]!=0)
PreTraverse(s,2*e+1);
if(s[2*e+2]!=0)
PreTraverse(s,2*e+2);
}
void PostTraverse(Sqbitree s,int e)
{
if(s[2*e+1]!=0)
PostTraverse(s,2*e+1);
if(s[2*e+2]!=0)
PostTraverse(s,2*e+2);
printf("%d ",s[e]);
}
void InTraverse(Sqbitree s,int e)
{
if(s[2*e+1]!=0) InTraverse(s,2*e+1);
printf("%d ",s[e]);
if(s[2*e+2]!=0) InTraverse(s,2*e+2);
}
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |
输入: | 树结点个数n 顺序方式存储的完全二叉树 |
输出: | 先序遍历输出 中序遍历输出 后序遍历输出 |
输入样例: | 10 1 2 0 3 4 0 0 5 6 7 |
输出样例: |
1 2 3 5 6 4 7
5 3 6 2 7 4 1
5 6 3 7 4 2 1 |
提示: | 数字“0”的孩子结点全部为“0” |