一颗具有N个结点的完全二叉树以一维数组作为存储结构,试设计一个对该完全二叉树进行线序遍历的算法。
2个回答
展开全部
preorder (R) //先序遍历二叉树R
int R[n];
{ int root;
SqStack *s; //s为一个指针栈,类型为seqstack,其中包含top域和数组data
s->top= -1; //s栈置空
root=1;
while ((root<=n) && (s->top>-1))
{ while (root<=n)
{ printf(R[root]);
s->top++;
s->data[s->top]=root;
root=2*root;
}
if (s->top>-1) //栈非空访问,遍历右子树
{ root=s->data[s->top]*2+1;
s->top--;
}
}
}
int R[n];
{ int root;
SqStack *s; //s为一个指针栈,类型为seqstack,其中包含top域和数组data
s->top= -1; //s栈置空
root=1;
while ((root<=n) && (s->top>-1))
{ while (root<=n)
{ printf(R[root]);
s->top++;
s->data[s->top]=root;
root=2*root;
}
if (s->top>-1) //栈非空访问,遍历右子树
{ root=s->data[s->top]*2+1;
s->top--;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询