自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KK_2018的技术博客_程序员不止是程序员

专注C++开发,偶尔玩玩Python

  • 博客(14)
  • 资源 (20)
  • 收藏
  • 关注

原创 递归和非递归实现二叉排序树(BST)的查找操作

二叉排序树又称二叉查找树非递归实现BST的查找操作空间复杂度为O(1),但是递归实现的空间复杂度为O(h),h为树的高度#include <iostream>using namespace std;typedef struct BSTNode{ int key; struct BSTNode *lchild,*rchild;}BSTNode,*BSTree;//非递归,空间复杂度为O(1)BSTNode *BST_Search(BSTree T,int k.

2020-07-28 19:46:51 594

原创 树和森林转二叉树,二叉树无右孩子(或右指针域为空)的结点个数计算思路

前提是知道非终端结点(分支结点)的个数,假设非终端结点的个数为n1.对于树转二叉树:因为转化规则是“左孩子右兄弟”,如果有n个分支结点,因为每个分支结点都会有孩子,这些孩子都是兄弟,然而最右边的孩子已经没有右兄弟了,没有右兄弟就意味着在转化为二叉树后这个孩子没有右孩子——即右指针域为空。又因为每个分支结点都存在一个没有右兄弟的孩子,所以n个分支结点就存在n个没有右兄弟的孩子,在转化为二叉树后这些孩子的右指针域都为空。最后,不要忘记树的根结点是没有兄弟的,所有在转化为二叉树后根结点的右指针域也

2020-07-27 22:51:13 8191 13

原创 先序序列为a、b、c、d的不同二叉树的个数是多少(卡特兰数)

除了逻辑清晰的挨个画出来之外,还有一种方法需要大家牢记!因为前序序列和中序序列可以唯一地确定一棵二叉树,并且题目已经给出了先序序列,所以我们只需要知道由该先序序列可以确定多少个中序序列即可,确定多少个中序序列就是可以确定多少棵二叉树!那么,问题来了,由一个先序序列如何确定有多少个中序序列呢?这就有两个“公式”需要大家去牢记了!1、先序序列和中序序列的关系为:以先序序列入栈,则出栈序列必为中序序列。2、一个入栈顺序可以确定的出栈顺序为C(2n,n) / (n+1)(卡特兰数)。..

2020-07-26 18:59:29 20442 8

原创 二叉树的先序线索化、中序线索化、后序线索化的对比

有一点需要注意:在先序遍历一个节点的左子树时,需要判断其ltag的值是否为0,如果为0可以正常遍历,但是,如果为1就不能进行遍历。因为ltag的值为1说明该结点的左指针指向的是它的前驱结点而不是左孩子(左孩子其实并不存在),继续遍历的话就会陷入“转圈圈”(前驱结点、该结点、前驱结点、该结点……)因为在中序遍历的顺序为左孩子、跟结点、右孩子,后序遍历的顺序为左孩子、右孩子、根结点。在遍历到跟结点时它的左孩子肯定是已经被遍历过了,不存在上述“转圈圈”的问题,所以可以正常遍历。右指针要么指向右孩子,要么指

2020-07-25 15:48:52 2556 6

原创 二叉树的四种遍历方法:前序、中序、后序、层次

前/中/后序遍历也可分别称为前/中/后根遍历#include <iostream>using namespace std;//二叉树的链式存储的结点typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//链式队列结点typedef struct LinkNode{ BiTNode *data; struct LinkNode *ne

2020-07-25 00:00:49 205

原创 串的模式匹配、KMP算法、nextval数组求法

一、暴力匹配#include <iostream>using namespace std;#define MAXLEN 255typedef struct{ char ch[MAXLEN]; int length;}SString;//S为主串,T为子串//暴力匹配int Index(SString S,SString T){ int i=1,j=1; int k=1; while(i<=S.length &&

2020-07-17 23:50:53 557

原创 稀疏矩阵的压缩存储的两种策略

来自王道数据结构

2020-07-15 22:15:32 519

原创 三对角矩阵(带状矩阵)的压缩存储原理

来自王道数据结构

2020-07-15 22:13:28 3299

原创 分别用顺序表和链表实现队列

一、顺序表实现队列#include <iostream>using namespace std;#define MaxSize 50typedef struct{ int data[MaxSize]; int front,rear;}SqQueue;void InitQueue(SqQueue &Q){ Q.front=Q.rear=0;}bool IsEmpty(SqQueue Q){ if(Q.front==Q.rear)

2020-07-11 23:00:12 188

原创 数据结构—分别用头插法和尾插法建立单链表

#include <iostream>using namespace std;typedef struct LNode{ int data; struct LNode *next;}LNode,;*LinkList;//头插法LinkList List_HeadInsert(LinkList &L){ LNode *s; int x; L=(LinkList)malloc(sizeof(LNode)); L->next=.

2020-07-07 23:37:25 535

原创 将两个有序表合并为一个

#include <iostream>using namespace std;#define Maxsize 20typedef struct{ int length; int data[Maxsize]; int maxSize;}SqList;bool Merge(SqList A,SqList B,SqList &C){ if(A.length+B.length>C.maxSize) return false;.

2020-07-05 22:45:28 186

原创 删除有序表中重复的元素,注意是有序表!

#include <iostream>using namespace std;#define Maxsize 20typedef struct{ int data[Maxsize]; int length;}SqList;void Del_repeat(SqList &L){ int i,k=0,temp=L.data[0]; for(i=1;i<L.length;i++) { if(L.data[i]==te.

2020-07-05 21:26:16 238

原创 三种方法删除有序表中s和t直接的元素(包含s和t)

#include <iostream>using namespace std;typedef struct{ int data[10]={0,1,2,3,4,5,6,7,8,9}; int length=10;}SqList;//解一bool Del_s_t(SqList &L,int s,int t){ if(L.length==0||s>=t) return false; int k=0; for(int.

2020-07-04 23:23:59 438

原创 顺序表所有元素逆置,空间复杂度O(1)

#include <iostream>using namespace std;//#define Maxsize 10typedef struct{ int length=10; int data[10]={0,1,2,3,4,5,6,7,8,9};}SqList;void Reverse(SqList &L){ int temp; for(int i=0;i<=L.length/2-1;i++) { tem.

2020-07-03 22:48:03 655 2

C++和QT实现的交通路径规划系统

本系统采用C++实现,界面部分采用的是QT设计,充分利用了迪杰斯特拉算法、佛洛依德算法、图的深度优先遍历算法等最短路径算法,数据结构采用了vector、优先队列、栈、邻接矩阵等等,对于想要学习数据结构和QT的同学是一个不错的练习项目。 本资源还附带了一份设计报告,可以解答你的疑惑,如果有什么问题欢迎在博客主页咨询本人。 实现的功能有: 1、验证全国其他省会城市到武汉中间不超过 2个省(省会城市)是否成立? 2、查询从任一个城市到另一个城市之间的最短路径(两种算法均要实现,界面上可自行选择)以及所有不重复的可行路径(可限制最多经过 10 个节点,并利用快速排序对所有路径方案依据总长度进行排序输出(输出到文件),每一条结果均需包含路径信息及总长度,试比较排序后的结果与迪杰斯特拉算法和费洛伊德算法输出的结果; 3、求解2个城市间最短路径时需要绕过某个特定的城市。 4、求解2个城市间最短路径时需要经过某个特定的城市。 4、不基于功能2 遍历的结果如何直接求解两个城市间的前第K 短的路径,例如,武汉到北京之间第 3 短的路径。

2024-01-07

QGIS3.18编译需要的环境,需要的软件都在压缩包里面

包含 VS2017 Community、 Cmake 3.26、 Cygwin64 2.925、 OSGeo4W老版本、ninja.exe。编译3.18必须用老版本的OSGeo4W才可以,这个是我费老大劲找到的,配置教程可以去我博客主页查看噢!

2023-12-17

qwtplot3d-master.zip

qwtplot3d的最新版,版本为0.3.2,可以显示三维的坐标点。

2023-12-06

qgis3.18.3源码

qgis3.18.3源码,qgis3.16、3.18、3.32三个版本我都编译过,这个3.18亲测是最稳定的!

2023-09-24

QGIS二次开发:给图层添加矢量要素,编程环境为QGIS3.28和VS2017

对矢量要素的编辑是 GIS 软件很重要的功能点之一,也是最难实现的功能点之一。编辑矢量要素涉及到很多方面的考虑,包括且不限于矢量要素的几何类型,拓扑关系,构成要素的节点的增删改,编辑会话 (session) 的启动、回溯和提交,要素属性的增删改等。本文实现了一个添加面要素的地图工具。 实现了如下需求: 参照 QGIS 和 ArcGIS,用一个按钮控制编辑会话的开始和结束,即控制图层处于编辑状态与否。按下表示处于编辑状态,弹起处于非编辑状态; 编辑状态下,激活“绘制多边形”按钮,点击激活添加多边形地图工具,弹起取消激活; 添加多边形地图工具激活时,用户可以在画布上点击绘制多边形:左键添加节点,右键结束当前多边形绘制。

2023-08-15

QGIS二次开发:显示矢量图层的属性表,编程环境为QGIS3.28和VS2017

这里实现两个基本的 GIS 软件需求:矢量图层的属性表显示,以及根据属性筛选要素。 具体需求如下: 1、加载一个矢量图层并打开其属性表; 2、输入筛选条件确认无误后,画布上和属性表中均只显示筛选后的要素。 属性表基于 Qt 的 QTableView 实现,利用了 QT中的Model/View 机制。 本篇文章主要用到的与实现图层属性表相关的类有四个,分别为: QgsVectorLayerCache,用于缓存给定QgsVectorLayer的特征,缓存的特征可以通过QgsAbstractCacheIndex进行索引。 QgsAttributeTableModel ,它能够为QAbstractItemView提供特征/属性信息,作为QgsAttributeTableView的后端数据源。 QgsAttributeTableView,该类继承自QgsTableView,进而继承自QTableView,是最终显示图层属性表的视图组件。 QgsAttributeTableFilterModel,继承自QSortFilterProxyModel提供对源模型数据筛选和排序的能力。

2023-08-15

QGIS二次开发:创建地图工具,编程环境为QGIS3.28和VS2017

地图工具是输入设备(一般指鼠标与键盘)与画布(QgsMapCanvas)的交互接口。它负责处理所有用户通过输入设备(鼠标和键盘)和画布互动的操作,例如镜头控制、要素绘制、标识工具等。QgsMapTool 是地图工具的基类,继承自QObject,提供了地图工具和画布交互的基本接口,地图工具子类通过重写这些虚函数接口实现自己的独特功能。 通过继承QgsMapTool基类,QGIS 自己实现了部分地图工具。我们也可以继承QgsMapTool基类来实现自定义地图工具。 我们这里写段代码测试一下QGIS的三个地图工具,分别为: 1、QgsMapToolPan 用于平移地图的地图工具; 2、QgsMapToolEmitPoint 使用此工具当单击地图时,它只是发出一个点。将一个槽连接到它的canvasClicked()信号可以为传入点实现自定义行为; 3、QgsMapToolIdentifyFeature 继承自QgsMapToolIdentify,用于识别所选层上的特征。用户可以单击地图来自动识别这块区域具有的特征,然后会发出一个信号。

2023-08-15

QGIS二次开发:显示多个图层,编程环境为QGIS3.28和VS2017

在实际开发中我们通常会遇到同时显示多个图层,并且还要实时显示和隐藏各图层的需求,如同 ArcGIS 的图层列表那样,界面左侧显示图层列表,列出当前已加载的所有图层,同时每个图层前面有复选框可以控制图层的显示/隐藏;界面右侧为画布,按图层列表的适当顺序显示所有未隐藏的图层。具体该怎么实现呢?编程环境为QGIS3.28和VS2017,效果参考我的博客链接https://kantlee.blog.csdn.net/article/details/132176893

2023-08-15

QGIS二次开发:显示Shapefile,编程环境QGIS3.28+VS2017

Shapefile 为 OGR 所支持的最重要的数据格式之一,自然可以被 QGIS 加载。那么该如何显示Shapefile呢?编程环境为QGIS3.28+VS2017,运行结果参考我的博客文章https://kantlee.blog.csdn.net/article/details/132168944

2023-08-15

Python数据可视化(处理地下车库情况的CSV文件,统计信息并绘图)

CSV文件中包含某地区的地下车库情况,包括id、车库名、车库所在位置、价格等。 1、提取其中的某6列数据导出到新的TXT文本文件,并对缺失值做丢弃处理; 2、输出前n行和后n行的数据; 3、从第一步得到的TXT文本文件中再次读取数据,并计算某两列的商,将结果再导入到一个EXCEL表格文件中; 4、打开第三步得到的Excel文件,使用其中的某列数据进行分组,求均值,并以柱状图展示; 5、使用某列数据进行分组,并将分组结果按照升序排列后以柱状图展示。 此资源充分使用了Python的pandas库来进行CSV文件和Excel文件的处理工作,包括数据分组、排序、导出、插入等。绘制柱状图时不仅需要使用pandas库,还需要matplotlib库,前者用来做数据处理,后者用来做图像的展示和保存。 本文件中不仅包含本项目的PDF报告一份和程序流图一份,还包括详细的录屏一份,录屏中详细介绍了本项目的实现思路、函数解释等。对于初次学习Python或者想学习Pandas的同学和开发者来说是一份很不错的参考资料。对于做Python课程报告的同学,本文件资料也有一定的参考价值。 希望这份资源能够为您提供帮助!

2023-03-10

CS1.6便携版,几十个地图均做了改良,低配电脑也可愉快玩耍,可局域网联机对抗,同时附带一些好玩的部件

CS1.6便携版,几十个地图均做了改良,低配电脑也可愉快玩耍,可局域网联机对抗,同时附带一些好玩的部件。

2022-02-14

博客使用的Tampermonkey插件.zip

https://blog.csdn.net/KK_2018/article/details/104516706?spm=1001.2014.3001.5502使用的插件包

2021-08-30

(完整word版)A4横线稿纸模板(可直接打印).doc

A4横线稿纸模板,可以直接打印的那种,下面有页码,不想要的话可以把页码删除。

2021-02-04

concurrent.rar

Python3内置的concurrent.futures模块,但是有时候内置的模块找不到了或者被误删了,把这个压缩包解压到concurrent,然后放在Python根目录的Lib目录下面就行

2021-02-03

新闻发布系统前端页面.rar

自主设计、自主制作的新闻发布系统前端页面,没用框架,利用到了JS的轮播图知识、Tab切换、HTML中的Table表格。详细图片介绍可去我博客“Web前端”栏目观看。

2020-05-25

纯JS实现前端购物车案例.rar

购物车案例功能介绍:1、添加购物车,清单库存数量会对应减少,库存不足会警告;2、从购物车删除,库存将返回清单,总价相应变化;3、点击"-",数量会返回到清单库存;4、点击"+",清单中库存会减少,库存不足会警告;5、勾选或取消勾选商品总价会相应变化;6、总价默认计算被选中的商品,添加商品到购物车时默认被选中;7、可以进行全选和反选,并一键删除,库存返回清单,总价改变。

2020-04-08

博客前端项目用到的图片(今日特价和轮播图).rar

个人博客(今日特价和轮播图两个项目)需要用到的图片素材,下载后请和代码放到同一目录,解压后文件夹命名为“images”

2020-03-19

股票列表的HTML代码和爬取结果.rar

股票列表的HTML代码和爬取结果,相关使用请看https://blog.csdn.net/KK_2018/article/details/104115099

2020-01-30

书城images.rar

黑马书城项目实战需要用到的图片!

2019-11-27

中文停用词表.rar

中文停用词表,Python做词频统计需要用到,怎么使用请看我博客!

2019-09-26

notepad++7.7.1版本安装包.rar

notepad++7.7.1版本安装包,下载解压后安装即可使用,windows64位系统适用

2019-09-26

数据结构(C语言版)(第2版)-习题答案-前7章.doc

数据结构(C语言版)(第2版)作者:严蔚敏-习题答案-前7章答案

2019-06-03

sublime.zip

传智播客讲师用的sublime,内置多种插件、已经设置成中文,解压即可使用。

2019-05-31

Sublime Text Build 3176 x64 Setup.exe

Sublime Text Build 3176 x64,使用方法见我博客https://blog.csdn.net/KK_2018/article/details/82217505

2019-05-31

简约个人主页_e90f6.zip

HTML简约个人主页,适合自己用,背景图片啥的自己换吧

2019-05-31

smali-2.2.7.jar

smali-2.2.7,具体怎么用我也不会,有需要的朋友下载吧

2019-05-31

电脑办公软件EXCEL工具箱.rar

EXCEl工具箱,安装时务必关闭Excel,安装后再打开excel,功能强大到你想像不到!适合办公人员使用!

2019-05-31

cpu-z_1.88-cn.zip

使用这个软件可以查看CPU的信息。软件使用十分简单,下载后直接点击文件,就可以看到CPU 名称、厂商、内核进程、内部和外部时钟、局部时钟监测等参数。选购之前或者购买CPU后,如果我们要准确地判断其超频性能,就可以通过它来测量CPU实际设计的FSB频率和倍频。

2019-05-27

超级文件批量重命名工具v1.0.zip

批量修改文件名称以及后缀名,支持自定义,支持多种格式文件

2019-05-27

仿站小工具+V9.0.zip

看到别的网站设计的特别好看,也想自己仿照设计一个的话,此工具是不二首选

2019-05-27

C++图书管理系统(对文件操作)

压缩包内有详细的使用说明,主要是对文件内容的操作(添加、修改、删除等)

2018-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除