![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
写条代码混日子,
遥感toCS
展开
-
OpenJudge F:Pots
每次操作分为6种情况,可以利用队列进行BFS搜索,同时进行剪枝和记录,避免振荡和没必要的操作。 #include <cstdio> #include <queue> #include <cmath> #include <vector> #include <iostream> using namespace std; struct Op { int a, b; int step; int way; int id,last_id; Op(i原创 2021-07-03 21:15:46 · 188 阅读 · 0 评论 -
字典树(前缀树)
二维数组实现字典树 比较方便 #include <iostream> #include <string> using namespace std; bool tri[100000][26] = { false }; void Insert(string& str) { int n = str.length(); for (int i = 0; i < n; i++) { auto idx = str[i] - 'a'; tri[i][idx] = tr原创 2021-06-30 18:49:38 · 122 阅读 · 0 评论 -
KMP算法
#include <vector> #include <iostream> #include <string> using namespace std; void getNext(string& pattern, vector<int>& next) { int n = pattern.length(); next.resize(n); next[0] = -1; int j = -1; for (int i = 1; i <原创 2021-06-30 17:52:53 · 120 阅读 · 0 评论 -
C++实现哈希查询
#define success 1 #define unsuccess 0 #define MAXSIZE 10 #define INI 10000 int m = 0;//表长 class HashTable { public: int count;//表中元素个数 int* elem;//元素数组 bool InitHashTable(HashTable* H); int Hash(int key); bool Insert(HashTable* H, int key); bool S原创 2021-02-22 13:21:17 · 147 阅读 · 0 评论 -
C++实现二叉排序树
尽管C++的STL模板中有set、multiset等关联容器能够起到二叉排序树的作用,但是动手写一写二叉排序树能够提升写代码的能力,并且能够加深对二叉排序树思想的理解。 typedef int etype; class BiTree { public: BiTree* lchild, *rchild; etype data; void DeleteNode(BiTree* T,etype key); bool SearchNode(BiTree* T, BiTree* f, etype key,原创 2021-02-21 20:21:56 · 319 阅读 · 0 评论 -
数据结构之栈的C++代码实现
一般的数据结构书中的栈和队列的实现都是用C语言的代码作为指导,C++则相对较少,所以在学习的过程中我尝试用C++写了一下,如果有错误希望大家能够指出。 #include <iostream> #include <stdlib.h> typedef int ElemType; const int MAXSIZE = 100; class SqStack { public: SqStack(); ~SqStack(); void InitStack(SqStack* S); vo原创 2021-01-30 20:40:52 · 265 阅读 · 0 评论