C++
文章平均质量分 82
ZhangBlossom
低头赶路,敬事如仪
展开
-
【数据结构C/C++】顺序与链式二叉树创建与前中后、层序遍历
考研408数据结构之顺序和链式存储二叉树的创建、前中后以及层序遍历原创 2023-10-10 13:31:33 · 347 阅读 · 0 评论 -
【数据结构C/C++】中序线索二叉树的实现(源代码以及讲解)
概念 传统的使用二叉链表实现的二叉树由于会有n+1个空间没有使用上,因此我们可以在该二叉树上使用其没有使用的空指针域,让这些指针域指向该节点的前驱或后继节点,以实现空间最大利用率,同时这种新的二叉树在需要知道某个之间的前驱或后继节点也更加的方便自如,那么这种二叉树就叫做—线索二叉树,我们规定,如果某个节点的左孩子为空,则其左孩子的指针域改为指向其前驱节点,如若右孩子为空,那么右孩子的指针域指向该节点的后继节点。实例先对这棵树中序遍历,之后就可以知道每一个结点的前驱和后继节点了。然后根据上面的规则我原创 2021-11-18 21:00:09 · 10071 阅读 · 1 评论 -
【数据结构C/C++】C语言实现哈夫曼树的译码以及编码
先附上代码效果图:哈夫曼编码讲解前言:先来吐个槽,相对于编码,解码应该是更加烧脑的一个过程,在不使用string类型,纯c语言的方法下,解码效率本身就低,还需要用到大量的for循环去得到编码是真的心累,就一个解码花了我两个小时,晕倒,但是最后解码成功是真的让人喜悦,不多bb,开始教程。首先如果想要理解接下来的代码,那么先看一眼我之前的哈夫曼编码的代码,因为我是基于编码上修改的。密文输入:密文的输入很简单。直接贴代码,相信大家都能看得懂可能比较难以理解的就是if里面for循环的部分,其实意思也原创 2021-11-29 22:37:25 · 11217 阅读 · 0 评论 -
【数据结构C/C++】图操作之邻接矩阵与邻接表的深度优先遍历
邻接表:邻接矩阵,也就是使用二维数组用来存放每个顶点与对应边的关系,例如两个顶点存在边,那么就将这个二维数组对应的下标设置为一个非0值。如下图:无向图情况:有向图情况:邻接矩阵是一种不错的图存储结构,但是对于边数使用较少的图,比较浪费存储空间,比如下面这种情况:而学习线性表的时候我们都知道顺序存储结构浪费空间,所以引出了链式存储结构来节约空间。因此,同样的我们可以对弧或边使用链式存储结构来避免空间浪费的问题。于是我们引出了新的图存储结构,邻接表。原创 2021-11-28 21:00:47 · 17267 阅读 · 1 评论 -
【数据结构C/C++】C语言哈夫曼编码与解码实现细则(附代码以及详细实现解释)
哈夫曼树作为最常见的考研树题目,拥有强大的压缩功能。这篇文章将带你了解哈夫曼树如何实现编码与解码原创 2021-11-21 15:01:10 · 18829 阅读 · 0 评论 -
【数据结构C/C++】顺序与链式队列详解(附代码)
文章目录前言一、顺序队列二、链式队列1.引入库2.读入数据总结前言队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First Input First Ouput),的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。既然是线性表,那么就可以分为顺序存储结构和链式存储结构。队列存储结构的实现有以下两种方式:顺序队列:在顺序表的基础上实现的队列结构;链队列:在链表的基础上实现的队列结构;原创 2021-08-17 09:39:03 · 9480 阅读 · 2 评论 -
【数据结构C/C++】顺序栈和链栈详解(附代码)
文章目录前言一、栈的顺序结构及其实现1:顺序栈概念理解2:入栈(压栈)实现方法3:出栈(弹栈)及其实现方法4:顺序栈输出其数据5:主函数二、栈的链式存储结构1.链栈概念理解2.初始化链栈3.链栈元素入栈4.链表元素出栈5.显示链栈元素6.主函数三、链栈与顺序栈优缺点对比前言栈是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO原创 2021-08-11 14:33:36 · 10516 阅读 · 0 评论 -
【数据结构C/C++】约瑟夫环以及约瑟夫生死者游戏的C/Java代码实现
文章目录前言一、概念了解二、实验设计1.链表初始化2.功能实现总结前言约瑟夫环问题,是一个经典的循环链表问题,题意是:已知 n 个人(分别用编号 1,2,3,…,n 表示)围坐在一张圆桌周围,从编号为 k 的人开始顺时针报数,数到 m 的那个人出列;他的下一个人又从 1 开始,还是顺时针开始报数,数到 m 的那个人又出列;依次重复下去,直到圆桌上剩余一个人。如图所示,假设此时圆周周围有 5 个人,要求从编号为 3 的人开始顺时针数数,数到 2 的那个人出列:出列顺序依次为:编号为 3 的人开.原创 2021-08-10 16:59:58 · 9645 阅读 · 1 评论 -
【数据结构C/C++】详解线性表之链式与顺序存储结构增删改查的实现方式(附代码)
文章目录前言一、顺序存储结构1:建立一个包含数组的结构体2:获得元素(从数组中获取所需元素)3:插入元素4:删除元素二、链式存储结构(方法1)1.创建承载数据的载体2:创建链表2.显示链表数据3:删除链表数据4:插入数据二、链式存储结构(方法2)1:结构体创建2:创建链表3:删除链表4:获取元素5:插入元素6:删除元素推荐学习网站前言链表,作为数据结构中非常重要的一种算法,有着诸多用途,因此写下本文记录自己的学习过程。参考书籍《大话数据结构第二版》一、顺序存储结构我们知道,数组最大的特点就.原创 2021-07-30 14:50:49 · 7839 阅读 · 1 评论 -
VS2019如何添加已有的配置表(使得之前已经配置好的属性可以无需配置直接使用)
使用opencv的人一般都需要使用opencv所要求的编译环境,列如opencv的文件目录。如图所示,这些便是使用opencv时会需要的外部包含文件,那么如果缺少这些文件便会导致代码由于无法识别一些特定代码而无法运行,所以我们需要进行一些配置,但是这些配置我们不可能每次都重新配置一次,因此vs2019有一个特殊的解决方法,也就是新建或引入配置表。1:新建配置表之后点击添加便会在你选定的位置生成配置表,而该配置表中的配置是由你当前文件中已经配置的方法进行一份拷贝,下次使用时直接引用该配置表即可。原创 2021-07-18 21:27:02 · 8212 阅读 · 0 评论 -
VS下源文件中有多个代码时如何指定运行特定的代码(一个源文件下有多个代码时运行指定代码)
最近用vs2019,同样的,如果一个源文件下面有着多个不同的代码,那么我们运行时,每次都会默认运行最先创建的代码。而这,不是我们所需要的情况,这种情况如下:这个源文件下有着两个代码,而1代码是我不想运行的,我想运行的是2代码,但是每次都会默认运行1代码,那么如何解决这种情况。解决方法:右击不需要运行的程序->属性->配置属性->常规->从生成中排除->是按照上面的方法便成功限定了运行范围。...原创 2021-07-18 19:36:12 · 13224 阅读 · 4 评论 -
C++最快速度改变字体颜色代码,VS2019实现
总所周知,#define是一个在编译之前就可以识别全部代码并将配对好的数据改为你所定义的数据,根据这一特性,如果调用define,就可以很快速的输出那些重复且需要多次调用的代码。#define red SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED); //红色#define nop SetConsoleTextAttribute(GetStdHandle(ST原创 2021-05-28 20:40:54 · 8866 阅读 · 1 评论 -
C++之MFC制作简单计算器(VS2019实现),附带完整代码
MFC制作简单的计算器(VS2019实现)VS2019可以用于制作简单的计算器,用的是MFC,通过设立button以及编辑框,并对编辑框插入相对应变量双击按钮,可以进入对该按钮的编辑(代码设置)。同理,每次要对一个按钮进行相应操作,就需要设置相对应的代码。代码参考之后便是编写相对应的代码。本文参考了别人的代码并进行整合。现直接贴出,只需要改变按钮对应的序号便可以直接使用了!!calculationDlg.h 头文件// calculationDlg.h: 头文件//#原创 2021-05-25 21:58:16 · 33144 阅读 · 27 评论