leveltree.c
来自「《数据结构》教材源程序,可以让你轻松的根据教材学习数据结构」· C语言 代码 · 共 46 行
C
46 行
#include <stdio.h>
#define m 3
typedef char datatype;
typedef struct node {
datatype data;
struct node *child[m];
} node,*tree;
void createtree(tree *p)
{/*按前序遍历顺序建立一棵3度树的递归算法*/
int i; char ch;
if ((ch=getchar())==' ') *p=NULL;
else
{
*p=(tree) malloc (sizeof(node));
(*p)->data=ch;
for (i=0;i<m;++i)
createtree(&(*p)->child[i]);
}
}
void levelorder(tree t)
{/*树的层次遍历*/
tree queue[20];
int f,r,i;
tree p;
f=0;r=0;queue[0]=t;
while (f<=r)
{
p=queue[f]; f++; printf("%c",p->data);
for (i=0;i<m;++i)
if (p->child[i])
{
++r; queue[r]=p->child[i];
}
}
}
main()
{
tree t;
printf("please input the preorder sequence of the tree:\n");
createtree(&t);
printf("\nthe levelorderis:");
levelorder(t);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?