
数据结构
文章平均质量分 91
H.A.N.118
才疏学浅,望共进步。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构笔记九——各种排序方法(C++)
介绍了常用的内排序,包括插入排序、选择排序、交换排序、归并排序。具体使用哪种排序方法取决于待排序数据的规模和原来的次序。原创 2021-12-27 23:40:59 · 1561 阅读 · 1 评论 -
数据结构笔记七——集合与静态查找
文章目录一、集合的基本概念1、集合的特征2、集合元素的类型3、集合的主要运算二、查找的基本概念三、静态表的查找1. 无序表的查找2. 有序表的查找2.1 顺序查找2.2 二分查找2.3 插值查找2.4 分块查找四、总结一、集合的基本概念1、集合的特征集合具有无序性,集合中的数据元素除了属于同一集合之外,没有任何逻辑关系。集合具有互异性,在集合中,每个数据元素有一个区别于其他元素的唯一标识,通常称为键值或关键字值2、集合元素的类型以学生信息集合为例,每一个元素是一个学生的相关数据,可能包含很多原创 2021-12-14 00:30:01 · 1210 阅读 · 0 评论 -
数据结构笔记六_优先队列(C++实现)
目录基本的优先级队列优先级队列的简单实现二叉堆二叉堆的存储基于二叉堆的优先级序列队列基本操作:优先级队列的定义优先级队列基本操作的实现代码总结及测试基本的优先级队列节点之间关系由节点的优先级决定,不是由入队的先后次序决定。优先级搞的先出队,优先级低的后出队。这样的队列称为优先级队列或优先队列。优先级队列的简单实现两种方法:入队时,按照优先级在队列中寻找合适的位置,将新入队的元素插入在此位置。出队操作的实现不变入队时间复杂度:O(n)O(n)O(n)出队时间复杂度:O(1)O(1)O(1)入原创 2021-12-10 02:30:07 · 2126 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码(c++实现)
哈夫曼树与哈夫曼编码一、字符的机内表示二、 哈夫曼树的概念三、 哈夫曼树的理论实现四、 哈夫曼树的代码实现理论设计代码实现代码总结和测试一、字符的机内表示在计算机中每个西文字符是用一个编码表示,大多数编码系统都采用等长编码,如ASCII编码例如在某段文本中用到了下列字符,括号中是它们出现的频率:a(10), e(15), i(12), s(3), t(4), 空格(13), 换行(1)。如采用定长编码,7个不同的字符至少要用3位编码。下图给出了一种编码对应方法:上述编码形式可以对应下面的二叉树,原创 2021-11-30 00:54:56 · 7308 阅读 · 0 评论 -
数据结构笔记五_树(c++超详细版)
目录树1、树的概念1.1 树的逻辑结构和基本运算1.1.1 树的定义1.1.2 树的常见基本操作1.2 树的物理结构2、二叉树2.1 二叉树的概念2.1.1 二叉树的定义2.1.2 二叉树的基本形态2.1.2.1 基本单元2.1.2.2 满二叉树2.1.2.3 完全二叉树2.2 二叉树的性质2.3 二叉树的基本运算2.4 二叉树的存储实现2.4.1 二叉树的顺序结构2.4.2 二叉树的链式结构2.4.3 二叉树类引入2.5 二叉树类的实现2.5.1 创建一棵树2.5.2 二叉树的遍历2.5.3 求规模操作的原创 2021-11-14 12:06:06 · 4774 阅读 · 0 评论 -
数据结构笔记四_队列(C++)
目录队列一、队列的逻辑结构1. 队列的概念2. 队列的基本操作队列类的抽象类二、队列的物理结构1. 队列的顺序结构(1) 顺序存储的三种方式介绍(2)循环队列类的声明三、队列的实现四、队列的应用队列一、队列的逻辑结构1. 队列的概念越早到达越早离开,先进先出。例如:银行储蓄柜前排队,计算机打印管理器中对打印队列的管理。2. 队列的基本操作结合生活实际,队列的基本操作如下:构造类创建队列create():创建一个空的队列属性类判断队空isEmpty(): 空,返回tr原创 2021-10-29 00:40:33 · 580 阅读 · 0 评论 -
数据结构笔记三_栈(C++)
栈目录栈一、栈的逻辑结构1. 栈的概念2. 相关概念3. 栈的运算二、 栈的物理结构1.栈的顺序结构2. 栈的链式结构三、栈类的实现1. 栈的顺序结构实现实现代码性能分析2.栈的链式结构实现实现代码性能分析四、栈的应用1. 栈类的测试代码总结代码运行结果一、栈的逻辑结构1. 栈的概念后进先出或先进后出的线性结构,最晚到达栈的节点最先被删除。以取放乒乓球为例:2. 相关概念栈底(bottom): 结构的首部(节点最早到达的部分)栈顶(top): 结构的尾部(节点最晚到达的地方)出栈(P原创 2021-10-19 00:59:50 · 1295 阅读 · 2 评论 -
数据结构笔记二_线性表的链式存储结构(C++)
线性表线性表的基本定义和顺序存储的实现见上一篇博客:https://blog.youkuaiyun.com/weixin_51352359/article/details/120497500线性表的链式存储结构线性表的抽象类首先依据线性表要实现的功能,定义线性表的类模板即父类:template<class elemType>class list {public: //对于属性类的函数,因其并不改变原数组or链表的值,在后面加const //可以达到保护隐含this指针以及供常对象使用的目的原创 2021-10-17 09:24:21 · 623 阅读 · 0 评论 -
数据结构笔记一_线性表的顺序存储结构(C++)
线性表一、逻辑结构及基本运算1.线性表的概念线性表是N个具有相同特征的节点A0,A1,⋯ ,AN−1A_0,A_1, \cdots ,A_{N-1}A0,A1,⋯,AN−1构成的集合。在这个集合中,除了A0A_0A0和AN−1A_{N-1}AN−1外,每个元素都有直接唯一的前驱和后继。2. 表的基本操作:构造类:构造出表结构属性类:只观察不修改求线性表的长度搜索某个元素是否在线性表中出现访问线性表的第i个元素数据操纵类:对数据进行改变在第i个位置插入一个元素删原创 2021-09-27 20:22:34 · 503 阅读 · 0 评论 -
单链表_约瑟夫环的解决(c++)
单链表链表的概念链表是一种常用的数据结构,通常用来存储一组同类数据。它与数组最大的不同在于其可以动态的进行内存分配,在需要增加一个元素时,动态的为它申请存储空间,但这样便无法保证元素是连续存储的,链表利用指向下一个节点的指针解决了这个问题。下图给出了最简单的链表——单链表的结构。链表有各种形式,除了单链表外还有双链表,循环链表等。图示如下:下面我们来讨论单链表。单链表的存储每个节点由两部分组成:数据元素本身和指向下一节点的指针。struct linkNode { datatype原创 2021-09-25 16:46:22 · 2753 阅读 · 3 评论