实验六:实现二叉树链式存储结构

来源:互联网 发布:宁夏干部网络培训平台 编辑:程序博客网 时间:2024/05/22 17:32

一、实验目的

熟练理解树和二叉树的相关概念,掌握的存储结构和相关操作实现;

掌握树的链式存储结构的实现;

二、实验过程

#ifndef BiTree_H#define BiTree_Hstruct BiNode{char data;BiNode *lchild, *rchild;};class BiTree{public:BiTree(){root=Creat(root);}~BiTree(){Release(root);}void PreOrder(){PreOrder(root);}void InOrder(){InOrder(root);}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);};#endif#includeusing namespace std;#include"Bitree.h"BiNode*BiTree::Creat(BiNode *bt){char ch;cout<<"请输入创建一棵二叉树的结点数据"<>ch;if(ch=='#')return NULL;else{bt=new BiNode;bt->data=ch;bt->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<data<<"";PreOrder(bt->lchild);PreOrder(bt->rchild);}}void BiTree::InOrder(BiNode *bt){if(bt==NULL)return;else{InOrder(bt->lchild);cout<data<<"";InOrder(bt->rchild);}}void BiTree::PostOrder(BiNode *bt){if(bt==NULL)return;else{PostOrder(bt->lchild);PostOrder(bt->rchild);cout<data<<"";}}#includeusing namespace std;#include"Bitree.h"int main(){BiTree T;cout<<"------前序遍历------"<






三、实验心得

学习了二叉树,是很有意思的一种数据结构。虽然理论知识略懂,但实际操作的时候还是感觉很欠缺,输出双亲、孩子结点部分未能实现,正在努力学习中。
原创粉丝点击