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 + -
显示快捷键?