头文件:
#include
using namespace std;
template
class Bintree;
//结点类
template
class BintreeNode
{
friend class Bintree;
public:
BintreeNode() :data(Type()), leftchild(NULL), rightchild(NULL)
{}...
分类:
编程语言 时间:
2015-06-09 09:56:05
阅读次数:
103
最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。
希望这些能提供给初学者一些参考。
在VC++6.0下可运行,当初还写了不少注释。
可以和 (编程训练)再回首,数据结构——二叉树的前序、中序、后序遍历(递归) 对比着看
【问题描述】
根据顺序存储结构建立二叉树的二叉链表,并对二叉树进行先序、中序、后序遍历。...
分类:
其他好文 时间:
2015-05-28 14:15:50
阅读次数:
157
这里我们主要讲二叉排序树的操作:什么是二叉排序树?
或者是一棵空树
或者是具有一下性质的二叉树:
a.若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;
b.若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
c.它的左、右子树也分别为二叉排序树
Tip : 中序(左根右)遍历二叉排序树会得到一个关键字的递增有序序列二叉排序树的操作——查找查找步骤:
若查找的关键字等于...
分类:
其他好文 时间:
2015-05-24 14:20:51
阅读次数:
229
这道题目难度一般,重要的是想到以队列作为辅助来解决。 分析:因为按层打印的顺序决定了先打印的应该为根结点。为了接下来能够打印值为 8 的结点的两个子结点,应该在遍历到该结点时把值为 6 和 10 的两个结点保存到一个容器里,此时容器中含有 6 和 10 两个结点。按照从左到右的要求,先取出值为 6 的结点。打印出值 6 之后分别把 5 和 7 两个左右子结点放入容器 ,此时容器中的结点有三个...
分类:
其他好文 时间:
2015-05-23 14:20:56
阅读次数:
165
给出一二叉树的前序遍历的顺序和中序遍历的顺序我们可以由此得出后序遍历的顺序,根据它们的访问顺序,前序遍历的第一个结点肯定是根结点,与之对应在中序遍历找到对应的根结点的位置,那么在中序遍历中,根结点的左边的元素都属于左子树的元素,根结点右边的元素都属于右子树的元素,之后把左子树当成一个继续操作,就这样可以推出整个树,继而求出后序遍历:
#include
#include
#include
#inc...
分类:
其他好文 时间:
2015-05-17 00:48:44
阅读次数:
151
为什么实用二叉树
一,在有序数组中插入删除数据太慢
1插入或者删除一条数据会移动后面的所有数据
二,在链表中查找数据太慢
2查找只能从头或者尾部一条一条的找
用树解决问题
有没有一种插入和删除像链表那么快,查询可以向有序数组一样查得快那样就好了。
数实现了这些特点,称为了最有意思的数据结构之一
树的术语
如下图
树分平衡树和非平衡树
...
分类:
编程语言 时间:
2015-05-15 12:08:28
阅读次数:
189
前一段时间,学习数据结构的各种算法,概念不难理解,只是被C++的指针给弄的犯糊涂,于是用java,web,javascript,分别去实现数据结构的各种算法。二叉树的遍历,本分享只是以二叉树中的先序遍历为例进行说明,中序遍历和后序遍历,以此类推!二叉树递归与非递归遍历的区别,虽然递归遍历,跟容易读懂...
分类:
编程语言 时间:
2015-05-14 16:12:04
阅读次数:
167
最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。
希望这些能提供给初学者一些参考。
在VC++6.0下可运行,当初还写了不少注释。
【问题描述】
根据顺序存储结构建立二叉树的二叉链表,并对二叉树进行先序、中序、后序遍历。
【基本要求】
·功能:根据顺序存储结构建立二叉树的二叉链表,并进...
分类:
其他好文 时间:
2015-05-12 15:44:15
阅读次数:
118
最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。
希望这些能提供给初学者一些参考。
在VC++6.0下可运行,当初还写了不少注释。
可以和 (编程训练)再回首,数据结构——二叉树的前序、中序、后序遍历(递归) 对比着看
【问题描述】
根据顺序存储结构建立二叉树的二叉链...
分类:
其他好文 时间:
2015-05-12 15:38:53
阅读次数:
111