【数据结构实验五】二叉树
来源:互联网 发布:c语言入门免费书籍 编辑:程序博客网 时间:2024/05/22 05:12
版权申明:
本实验的实验目的,实验内容,实验要求归东北大学所有,未经许可禁止转载。
实验五 二叉树
实验目的:
掌握先序遍历二叉树方法实现二叉树的二叉链表存储;掌握二叉树的三种遍历方法。
实验内容:
1. 通过结构体声明二叉树结点;
2. 创建并存储二叉树;
3. 实现二叉树的先序、中序和后序遍历。
源码:
#include "stdafx.h"#include <iostream>using namespace std;typedef int Status;typedef char TElemType;/******创建节点******/typedef struct BiTNode{TElemType data; //存放值struct BiTNode *lchild, *rchild; //左右孩子}BiTNode, *BiTree;/******输出元素e的值******/Status PrintElem(TElemType e){cout << e << " ";return OK;}/******创建二叉树******/Status CreateBiTree(BiTree &T){TElemType ch;ch = cin.get();//scanf("%c", &ch);if(ch == ' ')T = NULL; //输入为空格表示数值为空else{ T = (BiTNode *)malloc(sizeof(BiTNode)); //分配节点空间if(!T)exit(OVERFLOW); //分配失败T->data = ch; //根节点CreateBiTree(T->lchild); //构造左子树CreateBiTree(T->rchild); //构造右子树}return OK;}/******先序遍历二叉树(递归)******/Status PreOrderTraverse(BiTree T, Status( *Visit )(TElemType e)){if(T){PrintElem(T->data);PreOrderTraverse(T->lchild, Visit);PreOrderTraverse(T->rchild, Visit);return OK;}}/******中序遍历二叉树(递归)******/Status InOrderTraverse(BiTree T, Status( *Visit )(TElemType e)){if(T){InOrderTraverse(T->lchild, Visit);PrintElem(T->data);InOrderTraverse(T->rchild, Visit);return OK;}}/******后序遍历二叉树(递归)******/Status PostOrderTraverse(BiTree T, Status( *Visit )(TElemType e)){if(T){PostOrderTraverse(T->lchild, Visit);PostOrderTraverse(T->rchild, Visit);PrintElem(T->data);return OK;}}int main(){BiTree T;cout << "Input preoder string: " << endl;CreateBiTree(T);cout << "Preorder: " << endl;PreOrderTraverse(T, PrintElem);cout << endl;cout << "Inorder: " << endl;InOrderTraverse(T, PrintElem);cout << endl;cout << "Postorder: " << endl;PostOrderTraverse(T, PrintElem);cout << endl;return 0;}
运行结果:
阅读全文
0 0
- 【数据结构实验五】二叉树
- 《数据结构》实验五 树和二叉树
- 数据结构实验五:树和二叉树
- [数据结构]实验五_顺序二叉树
- 《数据结构》实验五: 树和二叉树实验
- 数据结构》实验五: 树和二叉树实验
- (实验五)《数据结构》第五章 树和二叉树实验
- 《数据结构》实验五: 树和二叉树实验
- 《数据结构》实验五: 树和二叉树实验
- 《数据结构》实验五: 树和二叉树实验总结
- 《数据结构》实验五: 树和二叉树实验
- 《数据结构》实验五: 树和二叉树实验报告
- 《数据结构》实验五:树和二叉树实验
- 《数据结构》实验五: 树和二叉树实验
- 数据结构 实验五 二叉树操作
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树五:层序遍历
- 剑指offer面试16 反转链表
- 基于C#制作的狼人游戏介绍
- dubbo 3 ReferenceBean<T>消费者端初始化过程
- HTML option排序功能
- java后台下载文件
- 【数据结构实验五】二叉树
- STM32 常用知识初探
- Django随笔记-1
- hash 分表
- ffmpeg 常见需求命令 (贴图、混音等)
- 焊接教学(入门级)
- POJ 2060
- 起点
- php实现上传功能并保存(简易版)