下载此文档

用递归和非递归算法实现二叉树的三种遍历.doc


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
. .
优选
. . . .
. . . .
. .
}ADT Binarytree
五、详细设计
扩展先序遍历:
* include<>
* include<>
*include<>
typedefstruct binarytree
{
char data;
struct binarytree *lchild,*rchild;
}BiTreeNode,*BiTree;
void CreateBiTree(BiTree *bt)
{char ch;
ch=getchar();
if(ch=='.') *bt=NULL;
else
{
*bt=(BiTreeNode *)malloc(sizeof(BiTreeNode));
(*bt)->data=ch;
CreateBiTree(&((*bt)->lchild));
CreateBiTree(&((*bt)->rchild));
}
}
void PreOder(BiTree root)
{if(root!=NULL)
{printf("%4c",root->data);
PreOder(root->lchild);
PreOder(root->rchild);
}
}
main()
{
BiTree root;
CreateBiTree(&root);
printf("先序遍历:\n");
PreOder(root);
}
递归算法:
*include""
*define PR printf
*define ERROR 0
. .
优选
. . . .
. .
*define MAX 100
/*============================建立各构造体===============================*/
typedefstruct node
{
char data; /*数据域*/
struct node *lchild;
struct node *rchild; /*结点的左右指针,分别指向结点的左右孩子*/
}BTNode;
typedef BTNode *DataType;
typedefstruct
{
DataType data[MAX];
int top;
}SeqStack;
SeqStack *s;
/*============================栈的操作===================================*/
SeqStack *createemptystacks() /*创立一个空栈*/
{
SeqStack *s;
s=(SeqStack*)malloc(sizeof(SeqStack));
s->top=0;
return s;
}
int stackemptys(SeqStack *s) /*判栈空*/
{
return s->top==0;
}
int stackfulls(SeqStack *s) /*判栈满*/
{
return s->top==MAX;
}
void pushs(SeqStack *s,DataType x) /*进栈*/
{
if(stackfulls(s))
PR("over flow\n");
else
s->data[s->top++]=x;
}
void pops(SeqStack *s) /*退栈*/

用递归和非递归算法实现二叉树的三种遍历 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2786321826
  • 文件大小98 KB
  • 时间2022-07-09
最近更新