数据结构 递归
来源:互联网 发布:网络水军怎么找 编辑:程序博客网 时间:2024/06/05 17:00
BiTree.h
#ifndef BiTree_H#define BiTree_H//避免重复包含BiTree的头文件//定义二叉链表的节点struct BiNode{char data;//假设二叉树的结构类型为char型BiNode *lchild,*rchild; } ;class BiTree{public:BiTree(){root=Creat(root);}~BiTree(){Release(root);//释放节点的储存空间 } void PreOrder(){PreOrder(root);//前序遍历二叉树 } void InOrder(){InOrder(root);BiTree.cpp#include<iostream>using namespace std;#include"Bitree.h"//以下是BiTree的成员函数定义BiNode *BiTree::Creat(BiNode *bt){char ch;cout<<"请输入创建一棵二叉树的节点数据"<<endl ;cin>>ch;if(ch=='#')return NULL;else{bt=new BiNode;//输入的字符赋给下一个节点bt->data=ch;//生成一个节点数据域为chbt->lchild=Creat(bt->lchild);//递归建立左子树bt->rchild=Creat (bt->rchild);//递归建立右子树 } return bt; } void BiTree::Release(BiNode *bt){if(bt!=NULL){Release(bt->lchild);Release(bt->rchild);delete bt;}}void BiTree::PreOrder(BiNode *bt){if(bt==NULL)//如果头结点为空 则返回 return;else{cout<<bt->data<<" ";//否则访问根节点的数据域PreOrder(bt->lchild);//前序遍历根节点的左子树 PreOrder(bt->rchild); //前序遍历根节点的右子树 } }void BiTree:: InOrder(BiNode *bt){if(bt==NULL)return;else{InOrder(bt->lchild);cout<<bt->data<<" ";InOrder(bt->rchild);}}void BiTree::PostOrder(BiNode *bt){if(bt==NULL)return;else{PostOrder(bt->lchild); PostOrder(bt->rchild);cout<<bt->data<<" ";}}
} void PostOrder(){PostOrder(root);//后续遍历二叉树 }private: BiNode *root;//指向根节点的头指针 BiNode *Creat(BiNode *bt); //调用构造函数void Release(BiNode *bt) ;//西沟函数的调用void PreOrder(BiNode *bt);void InOrder(BiNode *bt);void PostOrder(BiNode *bt); } ;#endifBitree_main.cpp#include<iostream>using namespace std;#include"Bitree.h"int main(){BiTree T;//创建一棵二叉树cout<<"---------前序遍历-----------"<<endl;T.PreOrder();cout<<endl;cout<<"---------中序遍历-----------"<<endl;T.InOrder();cout<<endl;cout<<"---------后序遍历-----------"<<endl;T.PostOrder();cout<<endl;return 0; }
阅读全文
0 0
- 数据结构---递归
- 数据结构 - 递归
- 数据结构:递归
- 数据结构-递归
- 数据结构-递归
- 【数据结构】递归
- 【数据结构】递归
- 数据结构 递归
- 《数据结构》递归算法
- 数据结构:递归 算法分析
- 《数据结构》递归算法
- 《数据结构》递归算法
- JAVA数据结构之递归
- 数据结构.非递归
- JAVA数据结构之递归
- 《数据结构》递归算法
- 数据结构 递归讲解
- 15-数据结构_递归
- JVM实用参数(一)JVM类型以及编译器模式
- javascript中的选择结构if和switch的简单使用方式及实际操作的易错点
- 实现哈夫曼树
- Spring实战-读书笔记(章节四)-面向切面的Spring
- StringUtils的leftPad(),rightPad(),center()方法使用经历
- 数据结构 递归
- 回调函数
- php模拟请求接口CURL
- Android客户端向PHP服务器端上传头像教学视频
- iOS仿探探六宫格相册的实现,带添加和删除功能
- 系统架构师考试总结
- 辛巴巴运动网第一课
- 深搜和广搜--原理彼此的优缺点
- golang sync包的读写锁RWMutex的使用