2013年6月19日
摘要: 二叉树的遍历分为前序遍历、中序遍历、后序遍历和层次遍历四种,下面分别进行简要的阐述并用C++实现:(1)前序遍历前序遍历首先访问结点,然后访问其左右子树,如果使用递归算法,那么具体的实现如下: 1 template<class T> 2 void Tree<T>::PreOrder(TreeNode<T>* root) 3 { 4 if(root != NULL) 5 { 6 cout<<root->data<<endl; 7 PreOrder(root->leftChild); 8 PreOrder(root->r 阅读全文
posted @ 2013-06-19 15:56 Sophia-呵呵小猪 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 为了表示二叉树,定义两个类:TreeNode和Tree,其中TreeNode class是对结点信息的抽象,它包括结点的数据域和分别指向左子树和右子树的指针域;Tree class是对二叉树的抽象,一个二叉树由一个根结点确定,所以其成员变量为一个根结点指针,此外它也抽象了二叉树的各种操作,包括二叉树的遍历等。它的C++基本实现如下:TreeNode class: 1 /* TreeNode.h */ 2 #ifndef TREENODE_H 3 #define TREENODE_H 4 5 template<class T> class Tree; 6 7 template< 阅读全文
posted @ 2013-06-19 14:50 Sophia-呵呵小猪 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 二叉树为什么那么重要?因为使用二叉树可以使查找与用数组查找一样快,同时在二叉树中添加、删除又能像链表中一样高效,因而掌握二叉树的相关知识是非常重要的。(1)二叉树的递归定义二叉树或者是一棵空树,或者是一棵由一个根节点和两棵互不相交的分别称作根节点的左子树和右子树所组成的非空树,左子树和右子树分别是一棵二叉树。结点的度:结点所拥有的子树的个数称为该结点的度;结点的层次:规定树的根节点的层数为1,其余结点的层数等于它的双亲结点的层数加1;树的深度:树中所有结点的最大层数称为树的深度;树的度:树中各结点度的最大值称为该树的度;满二叉树:所有分支结点都存在左子树和右子树,所有叶子结点都在同一层上,这样 阅读全文
posted @ 2013-06-19 14:18 Sophia-呵呵小猪 阅读(326) 评论(0) 推荐(0) 编辑