- 博客(7)
- 收藏
- 关注
原创 (图)的简单创建和理解
这里只给大家简单的介绍一下图,什么是图? 大家所熟悉的链表和树 其实也都是图的一种特殊变体,既然是链表,那么就一定有节点和指针了 这就是图,有很多节点,互相连接,带箭头的线是单向的,俩个箭头的是双向的,这些线条就是他们的关系的代表称为边,可问题又来了,那么这么做有什么用呢? 其实各个节点都可以看作一个地点,比如北京到上海,需要经过很多站,但是你能保证从北京到上海只有一条路吗?那当然不可能了,所以图的作用也就凸显出来了,从各个路径...
2021-11-30 11:43:26 476
原创 最简单的哈希表创建
这个哈希表是根据 取余的规则进行划分每个桶子的索引 ,代码关键部分都写了注释 ,废话不多说,上代码. Hash.h代码如下:#pragma once#define MAXSIZE 128//链表 节点的数据结构typedef struct _LNode { int key; const void* value; _LNode* next;}LNode;typedef LNode* List; //别名typedef LNode* El...
2021-11-26 23:42:40 1089
原创 哈夫曼树实现
哈夫曼编码其实就是一种数据压缩的方法,他会根据数据出现的频率来进行重新编码,减少空间大小,比如一段文章中 字符 ‘A’ 出现的频率非常的多,大家都知道一个字符占用八个字节,这时候我们用 二进制1 来代表 字符 ‘A’,那这段文章中所有的 字符‘A’岂不是缩小八倍吗,这意味着出现八次 ‘A’ 才跟原来一个‘A’占用的空间一样大 我使用优先队列和二叉树来完成哈夫曼树的实现, 队列的相关知识我就不将了,如果你按照顺序学习的话,队列应该已经学会了...
2021-11-25 12:02:46 373
原创 二叉树的前序中序后序(非递归)实现
首先讲的是前序遍历的 非递归实现,代码如下://前序遍历 (栈)void previousOrder(Bnode* root) { //Bnode是树节点类型 Stack S; //这个是一个栈,自己手写的栈 initStack(S); //初始化栈 pushStack(S, *root); /*首先将根节点压入栈,因为对于我们前序遍历来说
2021-11-24 16:00:25 641
原创 关于Linux环境变量(快速了解)
一. linux环境变量的种类分为两种 1.永久性的:使环境变量永久生效。 2.临时性的: 使用export声明环境变量,但是只能对于当前shell有效,关闭shell就失效了。 二. 在etc/profile文件中添加变量 该文件是对所有用户生效的,每个用户使用shell时就会加载该配置文件,etc/profile文件一般是会调用/etc/bash.bashrc文件,此文件会在每次使用shell时被执行三...
2021-10-10 14:30:55 102
原创 VS2019连接MYSQL8.0数据库(教程)
我的数据库是8.0版本首先打开vs2019,打开自己的项目,然后右键点击 自己的项目,然后点击属性在属性页找到包含目录和库目录,接下来我们要分别添加他们所需要的文件注意!! 不要关闭vs2019,缩小化即可找到本机的mysql的安装目录,如果是默认目录应该在:C:\Program Files\MySQL\MySQL Server 8.0这个目录下进入该目录进入include目录,因为里面有我...
2021-10-09 09:38:14 1487 1
原创 虚函数详细(剖析)看这一篇就够了
类只要包含了虚函数,那么这个类就会产生一个虚函数表,但是我们光知道了虚函数表的存在,想没想过他在对象的内存布局中的位置呢?这是个非常重要的问题!!!下面我们就来分析虚函数在对象的内存布局的位置。我使用的开发工具是 vs2019 首先先创建一个类:添加一个虚函数#include <iostream>using namespace std;class A {public: int i; //四个字节 vir...
2021-10-04 10:24:31 790 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人