树
阿华Go
做一个有责任心有上进心的汉子,我要肩负起守护家人的重任!!!
展开
-
数组实现二叉树
下面我们构造一个简单的二叉树,主要看清构造二叉树的思路; 解释一下,这里我们将二叉树的左节点和右边节点分别用0和1表示,同时将不存在的节点的值用0来表示. binaryTree.hclass BinaryTree{public: BinaryTree(int nSize, int *root); bool addTreeNode(int pos, int* parent, in原创 2017-07-03 21:12:58 · 1035 阅读 · 0 评论 -
二叉树的非递归遍历
转载:http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归转载 2017-07-05 09:28:00 · 453 阅读 · 0 评论 -
C++链表实现二叉树
我们分别在node.h和tree.h中定义了树中的节点类和树类,同时在node.cpp和tree.cpp中实现了在头文件中申明的函数,然后在demo.cpp中创建一棵树,看看效果。 PS:注意searchIndex(pos)函数,深刻理解其内在递归性,要不超容易犯错,博主初学的时候就是没有仔细理解其递归性,导致遍历一直出错,花了好长时间才找到问题出在哪里,非常耗时。node.h#ifndef NO原创 2017-07-05 15:44:30 · 569 阅读 · 0 评论 -
C++二叉树的链表实现
包括创建二叉树、递归遍历二叉树、非递归遍历二叉树等操作,请大家注意创建二叉树的函数,注意创建好的输入是怎样的,如下图所示的输入应该为ABC##DE#G##F###,类似于先序遍历。 #include <iostream>#include <stack>using namespace std;typedef struct Node{ char data; struct Node原创 2017-07-05 20:13:52 · 1673 阅读 · 0 评论 -
C++的图的基本概念
1. 有向图:顶点与顶点之间通过弧相连接;2. 无向图:顶点与顶点之间通过无向边相连接;3. 完全图:有向的完全图的弧的个数为n^2,无向图的完全图的边的个数为n(n-1)/2;4. 最小生成树算法:Prim算法:根据点集合判断生成最小生成树; KrusKal算法:根据边的集合判断最小生成树。5. 图的表示:邻接矩阵: 顶点值矩阵; 邻接链表矩阵; 邻接表:原创 2017-07-05 23:27:30 · 936 阅读 · 0 评论 -
C++二叉树的链表实现,包括递归和非递归实现
在上文的博客中已经写了二叉树的实现,那么为什么还要继续写这篇博文呢?答案是因为上文简单的写了二叉树的递归遍历,相信大家肯定刺激度不够,所以这篇博文中添加了非递归遍历,满足大家的好奇心,学习数据结构主要是蕴含在其中的思路,思路对了,什么都很简单的,不要局限在这种方式中,希望这篇博文会给大家带来一些收获。Node.h#ifndef NODE_H#define NODE_Hclass Node{pub原创 2017-07-06 09:37:18 · 447 阅读 · 0 评论 -
二叉树的链表实现以及非递归遍历
二叉树的结构 前序遍历:while(p!=NULL||!s.empty()){ while(p!=NULL){ cout<<p->data<<endl; s.push(p); p=p->lchild; } if(!s.empty()){ p=s.pop(); p=p->rchild; }原创 2017-07-05 09:24:14 · 687 阅读 · 0 评论