算法
Kiopler
这个作者很懒,什么都没留下…
展开
-
哈希表的C++实现
【代码】哈希表的C++实现。原创 2022-10-10 17:02:33 · 1426 阅读 · 0 评论 -
平衡二叉搜索树的C++实现
该模板类实现了平衡二叉搜索树的操作,其搜索的效率高达log2。原创 2022-10-05 22:08:31 · 296 阅读 · 0 评论 -
动态字符串的实现
【代码】动态字符串的实现。原创 2022-10-05 22:03:48 · 220 阅读 · 0 评论 -
双向循环队列的C++实现
双向循环队列的特点是两头都可以进行插入和删除操作。原创 2022-10-05 22:02:17 · 482 阅读 · 0 评论 -
双向循环链表的C++实现
【代码】双向循环链表的C++实现。原创 2022-10-05 22:05:25 · 580 阅读 · 0 评论 -
链栈的实现
【代码】链栈的实现。原创 2022-09-28 19:44:33 · 175 阅读 · 0 评论 -
数组二叉树的基础操作
【代码】数组二叉树的基础操作。原创 2022-09-27 22:27:17 · 205 阅读 · 0 评论 -
二叉搜索树BST
是一颗带值结点的二叉树, 可以为空树或者具有如下特点。原创 2022-09-07 08:35:07 · 391 阅读 · 0 评论 -
二叉树模拟文件系统
由于二叉树只有2个子节点, 所以只能存下2个目录。原创 2022-09-06 11:49:26 · 280 阅读 · 0 评论 -
KMP算法
这就可以推出B串的索引0, 1与A串的索引4, 5相同。为了寻找对称情况, 我们可以这样来扫描, 首先可以知道索引0是无法回溯的, 因为它是第一个, 所以索引0回溯到的地方还是索引0, 在next数组中就体现在next[0] = 0。串B和串A的匹配为何从串B的索引0与串A的索引4开始呢?而串B的索引4, 5与串A的索引4, 5又是相等的。首先, 来看一个例子, 这个例子中两串字符串, 上面的称为串A简称A, 下面的称串B简称B, 编程的目标是要从A中匹配B, 并返回A中匹配到的B位于A中的索引。原创 2022-09-05 16:12:09 · 319 阅读 · 0 评论 -
BFS和DFS算法实现走迷宫
BFS和DFS算法实现走迷宫。原创 2022-07-30 17:36:12 · 282 阅读 · 0 评论 -
C语言实现!20000用4秒计算
C语言实现!20000用4秒计算。原创 2022-07-24 14:04:14 · 304 阅读 · 0 评论 -
简易计算器编写
写了一个计算器, 控制台版的,只做加减乘除法, 无视多余空格。考虑写一个Qt版本图形界面版的,给加上小数运算和支持各类三角函数重要思想如下:中缀表达式转后缀表达式 栈结构的利用#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>#include <stack>#include <queue>#include <map>using name原创 2021-02-15 18:09:34 · 275 阅读 · 1 评论 -
双向链表实现
双向链表实现这里的实现方式与普通双向链表有一些不同#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>using namespace std;class CList{public: typedef struct DblLinkNode { DblLinkNode() : m_pPre(nullptr), m_pNext(nullptr), m_iVal(0)原创 2021-02-11 15:09:30 · 97 阅读 · 0 评论 -
动态数组(线性表实现)
动态数组(线性表)接口实现#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>using namespace std;class CArray{public: // 构造函数 CArray(); CArray(size_t nSize, int iNum = 0); CArray(int *pArr, size_t nSize, size_t nLen); // 拷贝构原创 2021-02-11 10:45:57 · 193 阅读 · 0 评论 -
非递归栈实现迷宫自动寻路[最简版]
可以说是最简化的了吧#include <stdio.h>#include <stdlib.h>#include <windows.h>#include <time.h>char szMazeMap[][25] = { "1111111111111111111111111", "1*00001100001110000011101", "1111101101100000011011101", "1000000001101111011原创 2020-11-28 09:49:25 · 385 阅读 · 0 评论 -
逆波兰表达式总结与例子
1. 数字不入栈,直接打印2. * / %优先级最高直接入栈,不会导致栈内弹出3. + = 入栈,并把栈内比其优先级高(或相等)的全部弹出4. ( 优先级在栈外最高与* / %等同,在栈内最低,只有遇到)才能将其弹出5. ) 将会弹出栈内所有,直到遇到)总结: 1. 新进入的符号(+, -, *, /, %)会把大于等于其优先级的符号弹出,直到碰到比其优先级更低的符号 2. '('是中流砥柱,只有遇到')'才会一并弹出*/#define _CRT_SECURE_NO_WARNIN...原创 2020-09-17 22:20:56 · 583 阅读 · 0 评论 -
单链表的实现
// List.h#include <iostream>using namespace std;typedef struct LinkNode { int iElem; struct LinkNode *next;} LinkNode, *LinkList;bool InitLinkList(LinkList *L);void TraverseLinkList(...原创 2020-03-02 10:47:43 · 183 阅读 · 0 评论