-
. z
"数据构造"
第六次实验报告
学生
学生班级
学生**
指导教师
-
.PTY;
}
-
. z
void Inittnode(Pnode root,Pnode left,Pnode right,char data)//初始化结点
{
root->left=left;
root->right = right;
root->data = data;
}
void PreorderR(Pnode proot)//递归先序遍历算法
{
if(proot)
{
printf("%2c",proot->data);
PreorderR(proot->left);
PreorderR(proot->right);
}
}
void InorderR(Pnode proot)//递归中序遍历算法
{
if(proot)
{
InorderR(proot->left);
printf("%2c",proot->data);
InorderR(proot->right);
}
}
void PostorderR(Pnode proot)//递归后序遍历算法
{
if(proot)
{
PostorderR(proot->left);
PostorderR(proot->right);
printf("%2c",proot->data);
}
}
void PreorderI(Pnode proot,Pstack pstack)//非递归先序遍历算法
{
Initstack(pstack);//初始化栈
while(proot||!Isempty(pstack))//如果栈空并且结点指针空,则完毕循环
{
if(proot)
{
printf("%2c",proot->data);
if(Isfull(pstack))//如果栈满不能执行入栈操作
{
printf("栈满,不能执行入栈操作!!");
-
. z
return;
}
Push(pstack,proot);//入栈
proot=proot->left;//指针指向左子
}
else
{
if(Isempty(pstack))//栈空时不能出栈
{
printf("栈空,不能执行出栈操作!!");
return;
}
proot = Pop(pstack);//执行出栈操作
proot=proot->right;//指针指向右子
}
}
}
void InorderI(Pnode proot,Pst
数据结构实验报告-二叉树的实现与遍历 来自淘豆网www.taodocs.com转载请标明出处.