数据结构实验:二叉树遍历(顺序存储结构)
Posted zzjam--1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构实验:二叉树遍历(顺序存储结构)相关的知识,希望对你有一定的参考价值。

#include<stdio.h> int tree[513],n;//定义全局变量,在遍历的时候可以使用 void PreOrder(int i)//递归 { if(i>n||tree[i]==0) return; printf(" %d",tree[i]); PreOrder(2*i); PreOrder(2*i+1); } void InOrder(int i) { if(i>n||tree[i]==0) return; InOrder(2*i); printf(" %d",tree[i]); InOrder(2*i+1); } void PostOrder(int i) { if(i>n||tree[i]==0) return; PostOrder(2*i); PostOrder(2*i+1); printf(" %d",tree[i]); }
给定顺序存储的二叉树,要求输出遍历该二叉树得到的先序、中序、后序遍历序列。
二叉树的顺序存储是指用一组地址连续的存储单元依次自上而下、自左向右存储完全二叉树上的结点元素(一般二叉树则将其每个结点与完全二叉树上的结点对照)。
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
int main()
{
int data;
n = 1;//下标从1开始
while(scanf("%d", &data), data!=-1)
{
tree[n++] = data;
}
PreOrder(1);
printf("\n");
InOrder(1);
printf("\n");
PostOrder(1);
printf("\n");
return 0;
}
以上是关于数据结构实验:二叉树遍历(顺序存储结构)的主要内容,如果未能解决你的问题,请参考以下文章