
小白数据结构
文章平均质量分 50
_CodeCAT_
吾忘初心,方得始终!
展开
-
顺序栈的模板类实现
从数据结构的角度看,栈也是线性表的一种,其特殊性在于栈其基本的操作还是依靠线性表实现的。 栈只允许在栈顶进行插入和删除操作。 栈的存储方式也分顺序栈和链栈两种,个人觉得既然只运行对栈顶进行操作,链栈没什么意义啊。class Stack{public: Stack(int size = Stack_init_size); ~Stack(); void ClearSt原创 2016-03-17 22:59:04 · 1790 阅读 · 0 评论 -
链队列的模板类实现
队列是一种先进先出的(First in First out)的数据结构,只允许插入的一端为队尾,允许删除的一端为队头。 链队列的存储示意图如下 需要注意的是在链队列中,front指针并不是指向队头的,而是指向一个固定的头结点。换句话说,无论队头如何变化,该链队列存储的初始位置不会发生变化。 整的队列的操作如下 注意红色的表示的指针从生成之后就没被修改过了,也就是说在队头之前还有个原创 2016-03-19 15:26:20 · 972 阅读 · 0 评论 -
树的三种表示方式
树(tree)是n个结点的有限集合。n=0时称为空树,在任意一颗非空树中: ①有且仅有一个特定的称号为根(root)的结点; ②当n>1时,其余结点分为m(m>0)个互不相交的有限集合T1,T2…Tm,其中每一个集合本身又是一棵树,并且称为根的子树(subTree); 特别注意只要有相交的子树的就不是树。 每一个结点所拥有的子树的个数称为结点的度(Degree)度为0的结点称为叶子结点(Le原创 2016-03-20 14:54:29 · 11717 阅读 · 2 评论 -
二叉树的模板类实现
二叉树的定义 二叉树(Binary Tree)是n>0个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两棵不相交的分别被称为左子树和右子树组成。·不存在度大于2的结点; ·左右子树是有序的,次序不能任意的颠倒。 二叉树的链表存储方式 二叉树的每个结点最多有两个孩子,所以设计一个数据域和两个指针域,我们称为二叉链表。 二叉链树的结点定义为template<typenam原创 2016-03-20 21:25:53 · 7388 阅读 · 3 评论 -
二叉排序树
二叉排序树(Binary Sort Tree),又被称为二叉查找树,它是一棵空树,或是具有以下性质的树: ①若它的左子树不为空,则它的左子树上的所有结点的值小于根节点的值; ②若它的右子树不为空,则它的右子树上的所有结点的值大于根节点的值; ③它的左右子树也是二叉排序树;c++实现#ifndef BST_H_#define BST_H_using namespace std;#defin原创 2016-03-26 11:29:44 · 575 阅读 · 0 评论 -
单链表的模板类实现
数据结构是初学编程时候的一个天坑,去年大一的时候学的那叫一个惨烈,虽然C++提供标准的list类库,但是自己动手实现这些常用的数据结构,不仅能对数据结构的认识更深,也对C++中深浅复制,重载,复用等内容更好的理解。 线性表的链式存储结构是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的也可以是不连续的),因此为了表示每个数据元素与其直接后继的逻辑关系,除了存储本身的信息之外,还需原创 2016-03-13 11:38:28 · 14218 阅读 · 3 评论