满意答案
398ibxhsf
2014.06.26
采纳率:48% 等级:9
已帮助:566人
以向量为存储结构的完全二叉树,其存储在向量中的结点其实是按层次遍历的次序存放的,可以根据课本第74页的内容设计出算法:
typedef char DataType;//设结点数据类型为char #define M 100//设结点数不超过100 typedef DataType BinTree[M];
void Preorder(BinTree T) { //前序遍历算法 int n=T[0];
int p[M];//设置一队列存放结点值 int i,j;
for(i=1;i<=n;i++) {
if (i==1)//根结点 j=1;
else if(2*j<=n)//左子树 j=2*j;
else if(j%2==0&&j
else if(j>1)//双亲之右兄弟 j=j/2+1; p[i]=T[j];//入队
printf("%c",p[i]);//打印结点值 } }
00分享举报