摘要: AVL树(平衡二叉树) 概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此为了解决这个问题,两位俄罗斯的数学家发明了一种方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要 阅读全文
posted @ 2022-12-03 14:28 一只少年AAA 阅读(422) 评论(0) 推荐(2) 编辑
摘要: 二叉搜索树 概念 二叉搜索树又称为二叉排序树,因为这棵树的中序遍历是有序的。二叉搜索树总结起来有以下几个性质: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于于根节点的值 它的左右子树都是二叉搜索树 这棵树中没有重复的元素 举个例子: 二 阅读全文
posted @ 2022-12-01 10:16 一只少年AAA 阅读(407) 评论(0) 推荐(1) 编辑
摘要: 二叉树链式结构 前一篇博客介绍了二叉树的顺序结构,是通数组来存储的,这里我们通过创建链式结构来存储,在堆上申请空间,结构如下: template <class DateType> struct BinaryTreeNode { DateType data;//数据域 BinaryTreeNode* 阅读全文
posted @ 2022-11-30 11:46 一只少年AAA 阅读(232) 评论(0) 推荐(1) 编辑
摘要: 堆排序 堆排序的前提 堆排序:是指利用堆这种数据结构所设计的一种排序算法。堆排序通过建大堆或者小堆来进行排序的算法。 举个例子:给定我们一个数组{2, 3,4, 2,4,7},我们可把这个数组在逻辑上看成是一种堆的结构,然后进行建堆,建大堆(或建小堆)我们就可以在堆顶选出一个最大(最小)的数,通过不 阅读全文
posted @ 2022-11-29 09:40 一只少年AAA 阅读(110) 评论(0) 推荐(1) 编辑
摘要: 树的基本概念和结构 树的相关概念 **节点的度:**一个节点含有的子树的个数称为该节点的度; 如上图:A的为2 叶节点或终端节点:度为0的节点称为叶节点; 如上图:D、F、G、H为叶节点 **非终端节点或分支节点:**度不为0的节点; 如上图:A、B…等节点为分支节点 **双亲节点或父节点:**若一 阅读全文
posted @ 2022-11-28 14:38 一只少年AAA 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 栈 栈的概念和结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)加粗样式的原则。 入栈:从栈顶放入数据的操作。 出栈:从栈顶取出元素的操作。 栈的实现 阅读全文
posted @ 2022-11-27 15:56 一只少年AAA 阅读(159) 评论(0) 推荐(1) 编辑
摘要: 带头双向链表的结构 看下面的图,就是我今天要给大家分享有结构——带头双向循环链表。这里的头是不存放任何数据的,就是一个哨兵卫的头结点。 用代码来表示每一个节点就是这样的: 数据域和指针域 两个指针,一个指向前驱结点,一个指向后继结点 给定两个构造函数,有参和无参,分别对结点的指针域和数据域进行初始化 阅读全文
posted @ 2022-11-26 19:07 一只少年AAA 阅读(201) 评论(0) 推荐(1) 编辑
摘要: 单链表 **概念:**链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 值得注意的是: 1.链表的在逻辑是连续的,物理上不一定是连续的; 2.现实中节点是从堆上申请的。 链表的实现 链表的单个结点的定义 就像这个图一样,一个空间用了存放数据(数 阅读全文
posted @ 2022-11-25 10:44 一只少年AAA 阅读(203) 评论(0) 推荐(2) 编辑
摘要: 顺序的概念与结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 一般分为两种:静态顺序表和动态顺序表 静态顺序表 #define N 100 typedef int SLDataType;//以便可以存储不同类型的数据 type 阅读全文
posted @ 2022-11-23 11:19 一只少年AAA 阅读(132) 评论(0) 推荐(0) 编辑
摘要: stack stack介绍 stack是一种先进后出的数据结构,只有一个出口,类似于栈。stack容器哦允许新增元素,移除元素,取得栈顶元素,但是除了最顶端之后,没有任何其他办法可以存取stack的其他元素,换句话说,stack不允许有遍历的行为。 元素推入栈的操作称为:push 元素推出栈的操作称 阅读全文
posted @ 2022-11-22 17:03 一只少年AAA 阅读(287) 评论(0) 推荐(0) 编辑