数据结构
文章平均质量分 68
Melonl
这个作者很懒,什么都没留下…
展开
-
二叉树练习(二):树的双亲表示法及其部分算法实现
双亲表示法,即储存树结点的同时储存其所属的父结点的表示法,通常利用顺序表(数组)实现。原创 2021-10-09 19:27:49 · 5366 阅读 · 2 评论 -
优先队列的总结和实现
优先队列的学习笔记原创 2020-07-19 22:00:31 · 400 阅读 · 0 评论 -
链表练习:使用递归重写单链表
本次的练习是使用递归重写单链表,包括链表的增、插、删操作,希望能给各位一点帮助与启发,共勉。原创 2020-04-22 14:18:19 · 588 阅读 · 0 评论 -
二叉树练习(一):从字符串构建二叉树和使用字符串输出二叉树
前言如标题所言,本次要实现是使用类似 “A(B(C),D(,E))” 这样的字符串构建、输出二叉树的代码,其实这种表示方式就是广义表的表示方式,有些书上也叫括号表示法。这种表示法的规则是:以字符来表示结点,结点后紧跟的括号表示此结点的孩子结点,例如树 “A(B,C)”,若孩子结点后面还有孩子结点,也按照此方法递归表示。兄弟结点之间使用逗号分隔。需要注意的是,如果结点A后面只有一个左孩子...原创 2020-04-15 12:01:52 · 4528 阅读 · 0 评论 -
顺序表练习(四):上三角矩阵的压缩存储公式推导以及代码实现
本篇博客会较为详细地讲一下我个人对三角矩阵压缩存储公式的理解,希望能给后面的朋友们带来一些帮助。原创 2020-01-13 21:31:58 · 25112 阅读 · 9 评论 -
顺序表练习(三):对称矩阵的压缩储存
前言本次练习的内容是对称矩阵的压缩储存以及各种配套函数的实现,先放一下对称矩阵的定义:对于一个方阵A,若其中的元素满足,则称其为对称矩阵。通俗地理解,对称矩阵就是沿着主对角线(“\”这样的是主对角线)将矩阵折叠后对应元素相同的矩阵。对称矩阵里有近一半的元素是相同的,如果对其进行压缩储存,我们就能省下近一半的空间。练习目标实现对称矩阵的压缩储存 实现相应的初始化、销毁...原创 2020-01-12 01:20:17 · 4345 阅读 · 0 评论 -
哈夫曼编码实训:使用Qt构建界面和简单的效率优化
前言这篇博客主要是整理、记录一下这次数据结构实训的过程以及分享一些我个人的心得体会,当然,代码我个人的项目代码也会开源分享。先放链接:https://github.com/Melonl/FileCompress相关资料以及开源代码在上面给的Github链接里的Code&Ref文件夹下即是实训参考文档以及老师给的参考代码,main函数入口在Demo1.cpp里,Traini...原创 2019-12-18 19:54:34 · 1124 阅读 · 0 评论 -
顺序表练习(二):稀疏矩阵的三元组压缩储存及其简单运算实现
这次要实现的是:以三元组的形式压缩储存稀疏矩阵一些辅助函数二分查找矩阵的某个元素实现矩阵的转置、加法、乘法运算原创 2019-11-27 21:09:28 · 4332 阅读 · 1 评论 -
栈知识点总结(一):使用数组和链表实现栈
前言栈是一种只能在一端进行插入或删除的线性数据结构,栈的主要特点是后进先出(Last In First Out, FIFO),即后进栈的元素先出栈。栈的应用很广泛,常见的应用场景例如表达式的括号匹配、文本编辑器的撤销功能、以及一些需要将有序数据逆序的场景都需要用到栈。栈的实现较为简单,并且可以由两种数据结构:链表、数组来实现,这篇文章要讲的就是如何用数组和链表来实现一个栈,同时简单讲讲两种实现...原创 2019-11-21 22:57:40 · 1438 阅读 · 0 评论 -
顺序表练习(一):字符串区间操作的实现与详解
前言顺序表其实就是数组,而字符串的区间操作,其实就是对一个字符串里的一段进行操作,例如删除一段字符、插入一段字符、获取一段字符等。这原本是我的一次数据结构课程作业,来自李春葆的数据结构教程第五版第四章的上机实验题,虽不难但细节较多,算是一次不错的训练编码能力的机会。数据定义既然要实现字符串的区间操作,那么肯定需要先手撸一个简易的字符串,先实现一些常规的方法,例如创建字符串、销毁字...原创 2019-11-10 19:18:17 · 933 阅读 · 0 评论 -
链表知识点总结(二)双链表、循环链表的总结以及一些LeetCode的链表题目推荐
接上一篇 链表知识点总结(一) 这次讲讲单链表的扩展——双链表、循环链表,以及推荐一些我个人认为比较好的链表练习题LeetCode。双链表的简单总结双链表其实就是节点的定义里多了一个prev指针指向上一个节点,对于带头节点的双链表来说,头节点的prev指针是指向NULL的(与此对应的是尾结点的next指针指向NULL),对于双链表来说,增删改查的操作与单链表没什么不同,只是多一个pr...原创 2019-11-05 20:16:49 · 530 阅读 · 0 评论 -
链表知识点总结(一):链表的常见操作以及复杂度分析
前言链表是数据结构中最基础的链式结构,也是后面构成图、树的基础。为此,我觉得有必要专门开几篇文章写写链表相关的内容,但是如果从零开始写起太过于枯燥,文章也会变得冗长,所以本文只写一些总结性的内容,对其中的原理不深究。另外,本文默认使用节点Node的C++定义为:class Node{public: int data; Node *next; Node...原创 2019-11-05 17:23:12 · 6508 阅读 · 0 评论