6-2 二叉树的遍历 (二叉树的四种遍历方法)
来源:互联网 发布:win访问mac共享文件夹 编辑:程序博客网 时间:2024/05/22 21:15
6-2 二叉树的遍历(25 分)
本题要求给定二叉树的4种遍历。
函数接口定义:
void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );void LevelorderTraversal( BinTree BT );
其中BinTree
结构定义如下:
typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};
要求4个函数分别按照访问顺序打印出结点的内容,格式为一个空格跟着一个字符。
裁判测试程序样例:
#include <stdio.h>#include <stdlib.h>typedef char ElementType;typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};BinTree CreatBinTree(); /* 实现细节忽略 */void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );void LevelorderTraversal( BinTree BT );int main(){ BinTree BT = CreatBinTree(); printf("Inorder:"); InorderTraversal(BT); printf("\n"); printf("Preorder:"); PreorderTraversal(BT); printf("\n"); printf("Postorder:"); PostorderTraversal(BT); printf("\n"); printf("Levelorder:"); LevelorderTraversal(BT); printf("\n"); return 0;}/* 你的代码将被嵌在这里 */
输出样例(对于图中给出的树):
Inorder: D B E F A G H C IPreorder: A B D F E C G H IPostorder: D E F B H G I C ALevelorder: A B C D F G I E H/* */void InorderTraversal( BinTree BT ){ //中序遍历 if(BT){ InorderTraversal(BT->Left); printf(" %c",BT->Data); InorderTraversal(BT->Right); }}void PreorderTraversal( BinTree BT ){//先序遍历 if(BT){ printf(" %c",BT->Data); PreorderTraversal(BT->Left); PreorderTraversal(BT->Right); }}void PostorderTraversal( BinTree BT ){//后序遍历 if(BT){ PostorderTraversal(BT->Left); PostorderTraversal(BT->Right); printf(" %c",BT->Data); }}void LevelorderTraversal( BinTree BT ){//层次遍历 BinTree p; BinTree q[55]; int f=0,r=0; if(BT){ //首先需要判断该树是否是空树 q[r++]=BT; while(f!=r){ p=q[f++]; printf(" %c",p->Data); if(p->Left!=NULL){ q[r++]=p->Left; } if(p->Right!=NULL){ q[r++]=p->Right; } } } }
阅读全文
0 0
- 6-2 二叉树的遍历 (二叉树的四种遍历方法)
- 二叉树遍历的6种遍历方法
- 二叉树的四种遍历
- 二叉树的四种遍历
- 二叉树的四种遍历实现
- 二叉树的四种遍历方式
- 二叉树的四种遍历算法
- 二叉树的四种遍历方式
- 二叉树的四种遍历
- 二叉树后序遍历的四种方法
- 二叉树的遍历方法
- 二叉树的遍历方法
- 二叉树的遍历方法
- 二叉树的遍历方法
- 二叉树的遍历方法
- 二叉树的三种遍历方法
- 遍历二叉树的三种方法
- 二叉树的三种遍历方法
- 关于STM32的学习 之时钟
- JS字符串的一些常用方法
- More Effective C++ 26. Limiting Object Instantiations
- HDOJ1395 2^x mod n = 1
- 加法的attenion简单的实现
- 6-2 二叉树的遍历 (二叉树的四种遍历方法)
- C++ List的用法(整理)
- [UNIX]进程调度nice()函数测试
- 无法导入 configparser模块,import configparser报错解决办法
- Mikrotik Switches Vs Cisco Switches
- centOS7访问nginx失败解决-.0:80 failed (98: Address already in use)解决
- 阻止windows关机时自动结束进程,导致数据丢失或异常
- eclipse启动很慢调优
- LED显示屏用nit,DLP用流明