博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树系列二:二叉树的C++表示
阅读量:4965 次
发布时间:2019-06-12

本文共 1262 字,大约阅读时间需要 4 分钟。

为了表示二叉树,定义两个类:TreeNode和Tree,其中TreeNode class是对结点信息的抽象,它包括结点的数据域和分别指向左子树和右子树的指针域;Tree class是对二叉树的抽象,一个二叉树由一个根结点确定,所以其成员变量为一个根结点指针,此外它也抽象了二叉树的各种操作,包括二叉树的遍历等。它的C++基本实现如下:

TreeNode class:

1 /* TreeNode.h */ 2 #ifndef TREENODE_H 3 #define TREENODE_H 4  5 template
class Tree; 6 7 template
8 class TreeNode 9 {10 friend class Tree
;11 public:12 TreeNode()13 {14 leftChild = NULL;15 data = 0;16 rightChild = NULL;17 }18 private:19 TreeNode
* leftChild;20 T data;21 TreeNode
* rightChild;22 };23 24 #endif
View Code

Tree class:

1 /* Tree.h */ 2 #ifndef TREE_H 3 #define TREE_H 4  5 #include "TreeNode.h" 6  7 template
8 class Tree 9 {10 public:11 Tree();12 bool isEmpty();13 void PreOrder(TreeNode
* root);14 void MidOrder(TreeNode
* root);15 void PostOrder(TreeNode
* root);16 private:17 TreeNode
* root;18 };19 20 #endif
View Code

在随后的章节中,为了使表达更直观更简洁,将TreeNode和Tree中的成员变量的属性设为了public。

 

 

转载于:https://www.cnblogs.com/sophia-yun/p/3144177.html

你可能感兴趣的文章
记录--js中出现的数组排序问题
查看>>
学习--Spring IOC源码精读
查看>>
记录--mac下终端内的环境变量问题
查看>>
nginx实现高性能负载均衡的Tomcat集群
查看>>
Rxjs中Notification介绍(一)
查看>>
merge和concat区别
查看>>
Rxjs中Notification 介绍
查看>>
2个数组对象合并,去重,并且标志出数据来自哪个数组
查看>>
【转载】CentOS7下使用LVM给系统硬盘扩容
查看>>
1-18-1 LVM管理和ssm存储管理器使用&磁盘配额(一)
查看>>
1-3 RHEL7操作系统的安装
查看>>
1-18-2 LVM管理和ssm存储管理器使用&磁盘配额 (二)
查看>>
Centos7 系统更改apache默认网站目录(解决You don't have permission to access / on this server问题)...
查看>>
Centos7 安装python环境
查看>>
修改apt,pip,npm为国内镜像源
查看>>
python 虚拟环境安装
查看>>
python 实现多层列表拆分成单层列表
查看>>
欢迎页面
查看>>
sqlserver cdc实现数据增量抽取
查看>>
论分治与归并思想
查看>>