数据结构
UnspoKen995
职业dalao腿部挂件
展开
-
堆实现优先队列
算法介绍:【每日算法】堆排序&优先队列代码实现:#include #include #include #define MAX 123456using namespace std;class PriorityQueue{private: int A[1123]; /// 堆化数组 int heapSize;public: /// 初始原创 2018-06-28 21:34:29 · 165 阅读 · 0 评论 -
图的深度遍历
#include <iostream>#include <cstring>using namespace std;int map[1123][1123]; /// 储存图int vis[1123]; /// 标记该点是否已被访问int ans[1123]; /// 储存遍历序列int p;void dfs(int k, int n){ vis[k] = 1; ans[p++原创 2017-12-07 16:32:39 · 501 阅读 · 0 评论 -
基于邻接矩阵的广度优先搜索遍历
#include <iostream>#include <cmath>#include <cstdlib>#include <queue>#include <cstring>using namespace std;int map[1123][1123]; ///储存邻接表int vis[1123]; /// 标记节点是否已访问int ans[1123]; /// 储存遍历序列int p原创 2017-12-07 16:31:38 · 435 阅读 · 0 评论 -
基于栈与队列的行编辑器
#include <bits/stdc++.h>using namespace std;typedef char ElemType;class Stack{private: ElemType *up; ElemType *base; ElemType length;public: Stack(){ base = new ElemType;原创 2017-10-29 17:21:40 · 448 阅读 · 0 评论 -
数据结构:KMP应用
#include <bits/stdc++.h>#define MAX 1000000using namespace std;int next[MAX];char s[MAX];char p[MAX];void GetNext(); /// 获取next数组void Kmp();int main(){ int n,m; cin >> n; for(int i = 0;原创 2017-10-29 17:21:00 · 313 阅读 · 0 评论 -
栈与队列:refresh的停车场
#include <bits/stdc++.h>using namespace std;int main(){ int n,t; while(cin >> n >> t) { stack<long long>S; queue<long long>Q; char st[10]; int flag = 1;原创 2017-10-19 19:50:35 · 639 阅读 · 0 评论 -
栈与队列:走迷宫
#include <bits/stdc++.h>using namespace std;int r[1123][1123];int f[1123][1123];int m,n;int sum;void bfs(int x, int y){ if(x == n && y == m) { sum++; return ; } f[x原创 2017-10-19 19:50:10 · 522 阅读 · 0 评论 -
栈的基本操作
#include <bits/stdc++.h>using namespace std;typedef int ElemType;int m;class Stack{private: ElemType *up; ElemType *base; ElemType length;public: Stack(){ base = new ElemType原创 2017-10-19 19:49:39 · 373 阅读 · 0 评论 -
出栈序列判定
#include <bits/stdc++.h>using namespace std;typedef int ElemType;class Stack{private: ElemType *up; ElemType *base; ElemType length;public: Stack(){ base = new ElemType;原创 2017-10-19 19:49:15 · 183 阅读 · 0 评论 -
栈与队列:下一较大值
#include <bits/stdc++.h>using namespace std;typedef int ElemType;struct Node{ ElemType data; ElemType num; ElemType next;}p[100100];int main(){ int T; struct Node t; cin >>原创 2017-10-19 19:48:53 · 240 阅读 · 0 评论 -
图论:判断可达性
#include <iostream>#include <cstring>using namespace std;int map[1123][1123];int vis[1123];int p;void dfs(int k, int n){ vis[k] = 1; for(int i = 0; i < n; i++) { if(!vis[i] && m原创 2017-12-07 16:33:49 · 507 阅读 · 0 评论 -
图论:迷宫探索
#include <iostream>#include <cstring>#include <cstdlib>using namespace std;int map[1123][1123];int vis[1123];int ans[1123];int p;void dfs(int k, int n){ vis[k] = 1; ans[p++] = k; for原创 2017-12-07 16:34:17 · 237 阅读 · 0 评论 -
图论:从起始点到目标点的最短步数(BFS)
#include <iostream>#include <cstdlib>#include <cstring>#include <queue>using namespace std;int map[1123][1123];int vis[1123];struct node{ int x; /// 记录当前点 int step; /// 记录此时已走了多少步};void原创 2017-12-07 16:49:52 · 242 阅读 · 0 评论 -
二叉排序树
#include <iostream>#include <string>#define ElemType intusing namespace std;int flag;typedef struct BinSortTree{ struct BinSortTree *left; struct BinSortTree *right; ElemType data;}Node原创 2018-01-03 17:52:35 · 161 阅读 · 0 评论 -
二分查找
#include <bits/stdc++.h>using namespace std;int res[101000]; /// 数组开大int n;/*** 递归实现*/int QuickSort(int key, int left, int right){ if(left > right) { return -1; } int mid原创 2018-01-03 17:52:02 · 318 阅读 · 0 评论 -
bucket sort
#include <bits/stdc++.h>using namespace std;int a[1001000];int main(){ ios::sync_with_stdio(false); int n; while(cin >> n) { memset(a, 0, sizeof(a)); for(int i = 0; i <原创 2018-01-03 17:51:29 · 249 阅读 · 0 评论 -
顺序查找
#include <bits/stdc++.h>using namespace std;int arr[1001000];int main(){ ios::sync_with_stdio(false); int n, k; while(cin >> n >> k) { int t = -1; for(int i = 0; i < n原创 2018-01-03 17:50:58 · 431 阅读 · 0 评论 -
判断给定图是否存在合法拓扑序列
#include <iostream>#include <cstring>using namespace std;int map[1123][1123];int in[1123]; /// 记录入度void Topo(int n){ int flag; for(int i = 1; i <= n; i++) { flag = 0; for原创 2017-12-07 17:14:06 · 269 阅读 · 0 评论 -
最小生成树
#include <iostream>#include <cstdio>#include <cstring>#define MAX 0x3f3f3f3fusing namespace std;int map[1123][1123];int vis[1123];int lowcost[1123];int flag, sum;void prim_MST(int n){ flag =原创 2017-12-07 17:13:20 · 753 阅读 · 0 评论 -
欧拉回路
#include <iostream>#include <cstring>#define MAX 0x3f3f3f3fusing namespace std;int map[1123][1123];int vis[1123], b[1123];int flag;bool judge(int n){ for(int i = 1; i <= n; i++) {原创 2017-12-07 17:12:37 · 266 阅读 · 0 评论 -
图论:驴友计划
#include <iostream>#include <cstring>#define MAX 0x3f3f3f3fusing namespace std;struct node{ int l, w;}map[1123][1123];void Floyd(int n, int s, int d){ for(int i = 0; i < n; i++) {原创 2017-12-07 16:52:46 · 198 阅读 · 0 评论 -
图论:村村通公路
#include <iostream>#include <cstdio>#include <cstring>#define MAX 0x3f3f3f3fusing namespace std;int map[1123][1123];int vis[1123];int lowcost[1123];int flag, sum;void prim_MST(int n){ flag =原创 2017-12-07 16:51:43 · 240 阅读 · 0 评论 -
栈与队列:下一较大值
#include <bits/stdc++.h>using namespace std;typedef int ElemType;struct Node{ ElemType data; ElemType num; ElemType next;}p[100100];int main(){ int T; struct Node t; cin >>原创 2017-10-19 19:46:43 · 207 阅读 · 0 评论 -
栈与队列:括号匹配
#include <bits/stdc++.h>#define MAX 1000000using namespace std;char st[100];bool match(char a, char b){ if( (a == '(' && b == ')') || (a == '{' && b == '}') || (a == '[' && b == '原创 2017-10-19 19:46:18 · 298 阅读 · 0 评论 -
栈与队列:后缀式求值
#include <bits/stdc++.h>using namespace std;typedef int ElemType;class Stack{private: ElemType *up; ElemType *base; ElemType length;public: Stack(); void push(ElemType); void原创 2017-10-19 19:45:48 · 241 阅读 · 0 评论 -
判断给定森林中有多少棵树
#include<bits/stdc++.h>using namespace std;int main(){ int ans[102000]; /// 下次数组要开大!!! int uset[102000]; /// N+1次RE 是不是没有脑子!!! int t,n,m; cin >> t; while(t--) { cin >>原创 2017-09-04 19:48:24 · 262 阅读 · 0 评论 -
树的种类统计
#include <bits/stdc++.h>using namespace std;typedef struct BinaryTree{ char data[23]; int cnt; /// 记录此时该类树的个数 struct BinaryTree *Left; struct BinaryTree *Right;}Node;int n;void BiTre原创 2017-09-04 19:48:02 · 307 阅读 · 0 评论 -
平衡二叉树
#include <bits/stdc++.h>#define ElemType intusing namespace std;typedef struct AVLTree{ ElemType data; ElemType bal; /// 记录平衡因子 struct AVLTree *Left; struct AVLTree *Right;}Node;int原创 2017-09-04 19:47:36 · 264 阅读 · 0 评论 -
二叉排序树
#include <bits/stdc++.h>#define ElemType charusing namespace std;ElemType arr[1123];ElemType res[1123];typedef struct BinaryTree{ ElemType data; struct BinaryTree *Left; struct BinaryTr原创 2017-09-04 19:47:05 · 198 阅读 · 0 评论 -
哈夫曼编码(优先队列实现)
#include<bits/stdc++.h>using namespace std;int main(){ int la; /// ASCII编码长度 : 表示占多少位长 即 一个ASCII长度为一字节,8位 int lh; /// Huffman编码长度 int num[1123]; string st; while(cin >> st) {原创 2017-09-04 19:46:08 · 332 阅读 · 0 评论 -
层序遍历二叉树
#include <bits/stdc++.h>#define ElemType charusing namespace std;int i;ElemType st[1123];typedef struct BinaryTreeNode{ ElemType data; struct BinaryTreeNode *Left; struct BinaryTreeNode原创 2017-09-04 19:45:36 · 210 阅读 · 0 评论 -
二叉排序树
#include <bits/stdc++.h>#define ElemType charusing namespace std;ElemType arr[1123];ElemType res[1123];typedef struct BinaryTree{ ElemType data; struct BinaryTree *Left; struct BinaryTr原创 2017-09-04 19:39:28 · 201 阅读 · 0 评论 -
Fence Repair
#include<bits/stdc++.h>using namespace std;int main(){ int n; while(cin >> n) { priority_queue<int, vector<int>, greater<int> > Q; long long x; for(int i = 0; i < n原创 2017-09-04 19:38:24 · 212 阅读 · 0 评论 -
树结构练习——判断给定森林中有多少棵树
#include <bits/stdc++.h>using namespace std;int uset[1123];void MakeSet(int n); /// 初始化并查集int FindBoss(int x); /// 找爹 23333void Merge(int a, int b); /// 合并int main(){ int n,m; while(cin >>原创 2017-09-04 19:36:32 · 380 阅读 · 0 评论 -
查找练习 hash——出现过的数字
#include <bits/stdc++.h>using namespace std;int Hash[100100];/*全局变量 静态变量初始值为0局部变量 自动变量初始值随机分配*/int main(){ ios::sync_with_stdio(false); int n,m; int key; cin >> n >> m; for(in原创 2017-08-29 00:48:06 · 251 阅读 · 0 评论 -
线性之哈希表
#include <bits/stdc++.h>using namespace std;int main(){ int Hash[1123]; int Seat[1123]; int n,p; while(cin >> n >> p) { int k = 0; memset(Hash,-1,sizeof(Hash));原创 2017-08-28 23:44:36 · 270 阅读 · 0 评论 -
平方之哈希表
#include <bits/stdc++.h>using namespace std;int main(){ int Hash[1123]; int Seat[1123]; int n,p; while(cin >> n >> p) { int k = 0; memset(Hash,-1,sizeof(Hash));原创 2017-08-28 23:10:24 · 229 阅读 · 0 评论 -
栈与队列:一般算术表达式转换成后缀式
#include <bits/stdc++.h>using namespace std;typedef int ElemType;ElemType level[1123];char st[1123];char res[1123];class Stack{private: ElemType *up; /// 指向栈顶 ElemType *base; /// 指向栈底 E原创 2017-10-19 19:45:17 · 206 阅读 · 0 评论 -
栈与队列:进制转换
#include <bits/stdc++.h>using namespace std;typedef int ElemType;class Stack{private: ElemType *up; /// 指向栈顶 ElemType *base; /// 指向栈底 ElemType length; /// sizepublic: Stack(); /// 初始原创 2017-10-19 19:44:43 · 249 阅读 · 0 评论 -
类的友元函数的应用
3-7 类的友元函数的应用#include <bits/stdc++.h>using namespace std;class Point{private: double x, y;public: Point(double x = 0, double y = 0); void Output(const char *name); friend void Distanc原创 2017-10-27 09:26:32 · 236 阅读 · 0 评论