![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
沐目_01
一个人可以被毁灭,但不可以被打败。
展开
-
大数的加减乘除
#include<cstdio>#include<cstring>struct Big_Num{ int flag; int dig[1000]; int len; Big_Num() { memset(dig, 0, sizeof(dig)); len = 0; flag = 0; }};Big_Num Transform(char arr[]){ Big_Num flag; flag.len = strlen(arr); for (int原创 2021-02-10 20:54:42 · 310 阅读 · 0 评论 -
拓扑排序及关键路径
拓扑排序的实现:辅助数组:int Indegree[100]:用来存放各结点的前驱结点个数tops[10]:用来存放排序后的顺序因为需要计算每个结点的入度和出度,所以用了十字链表。过程计算每个结点的前驱个数,记录到indegree中;让前驱个数为零的结点入栈;当栈不为空时,输出栈顶结点,加入到tops中。遍历所有以次结点,为尾结点的结点,让这些结点的入度减一,如果这个结点的入...原创 2020-02-10 17:45:47 · 317 阅读 · 0 评论 -
图的最短路径
#include<iostream>#include<algorithm>using namespace std;struct Graph{ int Arr[100][100]; string Name[100]; int Vex_num, Edge_num;};int Get_Location(Graph T,string name)...原创 2020-02-10 15:52:20 · 114 阅读 · 0 评论 -
最小生成树 prim和Kruskal
prim算法有两个集合,第一个集合,存放最小生成树,第二个集合,用才存放还没有进入最小生成树的结点。但这两个集合实际上是用同一个数组表示的。我们用closedge[100]来表示这个数组,每个单元由“string Data;”和“int lowcost;”两部分组成。其中closedge[1]表示图中的第一个结点v1,closedge【1】.Data表示v1到最小生成树最短路径的结点(假设为v...原创 2020-02-08 21:47:54 · 170 阅读 · 0 评论 -
十字链表
#include<iostream>using namespace std;typedef int TElemType;typedef struct Node{ TElemType Data; int Tail_Vex; int Head_Vex; Node * tlink; Node * hlink;};typedef struct...原创 2020-02-05 19:24:58 · 168 阅读 · 0 评论 -
图的BDF与DFS遍历
DFS遍历1.邻接矩阵每次输入一个数字,标记着从哪个结点开始。然后将值传给DFS函数;DFS函数输出,传过来的值,对应的结点,将此结点做标记;从与此节点相连的第一个结点开始,如果没有被标记,就执行第二部;如果被标记了,就遍历下一个,直到第一个结点的最后一个邻接点被遍历。bool visited[100];void DFS_AM(Graph T,int i){ cout&l...原创 2020-02-05 17:12:39 · 390 阅读 · 0 评论 -
BF算法、KMP算法及思想
BF算法当我们在进行字符串匹配时,我们会把主串和模式串,从某个位置,我们记为【pos】,开始匹配,每匹配成功一个字符,就让i加一。可一旦“失配”,我们就会让i回溯,从pos的下一个字符开始,重新执行上面的过程,直到模式串被匹配完。int Index_BF(string str1, string str2, int pos = 1){ int i = pos, j = 1; w...原创 2020-01-29 17:10:57 · 638 阅读 · 0 评论 -
链表的逆序输出
逆序输出,需要用到三个指针:P,Q,R,初始化时,分别指向NULL,head的next,head的next的next。每次都让Q指向P,然后同时向前走一个结点。#include<iostream>using namespace std;typedef struct node{ int data; node * next;};void create(node ...原创 2020-01-03 10:08:06 · 320 阅读 · 1 评论 -
哈夫曼树的实现及哈夫曼编码
感悟哈夫曼树,核心思想:就是每次从当前的根节点数组中,找出两个权值最小的根节点,然后让它们两个分别作为左子树和右子树,去构造一颗新的树,并把这个新的根节点,添加到根节点数组中。如此反复,直到就只剩一个根节点。思路//n是度为0的节点数创捷一个空间大小为 2 * n的线性表;//new Tree_nde[2 * n];将每个节点的双亲,左孩子,右孩子都初始化为0,并输入前n个节点的权值...原创 2019-12-25 21:36:51 · 330 阅读 · 0 评论 -
基于散列表的程序相近度检测系统
#include<iostream>#include<fstream>#include<iomanip>#include<math.h>#include<string>#include<cstring>#include<typeinfo>#include<windows.h>#inclu...原创 2019-12-22 21:04:51 · 2017 阅读 · 6 评论 -
树的先序遍历及相关操作
#include<iostream>using namespace std;typedef int ElemType;typedef struct BiTNode{ ElemType data; BiTNode * Lchild, * Rchild;}* BiTree;void Create(BiTree &T,ElemType x = 1){ ...原创 2019-12-08 14:58:26 · 160 阅读 · 0 评论 -
哈希表的构造与查找
#include<iostream>#include<stdio.h>#define LENGTH 8#define NUM 10#define MOD1 7#define MOD2 10using namespace std;typedef int ElemType;int func(int key,int MOD){ return key %...原创 2019-12-07 10:47:23 · 514 阅读 · 0 评论 -
栈和队列的实现
我感觉用结构体,来实现栈,太假了。真实的情况,应该是封装在一个类里面的,并且还调用了模板函数一类的东西,但具体是怎么实现的,我也不知道。就自己估摸着,写了一个。#include<iostream>#include <typeinfo>using namespace std;typedef int NUMBER;template<typename T>...原创 2019-12-02 12:04:17 · 159 阅读 · 0 评论 -
nyoj-519-密码发生器
#include<stdio.h>#include<string.h>using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { char a[110]; int c[6]; memset(a,0, si...原创 2019-04-10 15:50:06 · 147 阅读 · 0 评论 -
ACM 括号配对问题
ACM A+B Problem 需要用到栈的知识,但是并不是很难,是一道很不错的栈的入门题。这是关于栈和队列的讲解。看完之后,可能感觉这和这个题有什么关系,不要着急,慢慢来。我们可以把这个看成一个栈,一个一个的往栈里加入括号字符“push()”,每进行一次输入,都判断一次栈是否为空,如果为空,直接进栈,做栈顶,如果不为空,判断一下,能否和栈顶配对,如果可以,把栈顶pop()掉,如果不能配对...原创 2019-04-08 21:43:29 · 178 阅读 · 0 评论 -
喷水装置
标题现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。输入描述:第一行m表示有m组测试数据每一组测试数据的第一行有一个整数数n,n表示共有n...原创 2019-04-08 21:51:40 · 282 阅读 · 0 评论 -
冒泡排序
冒泡排序输入几个数,让后从第一个数开始排序,我这里是从大往小排。首先第一个,从所有的数中,从前面开始找,看是否有比它大的,如果有,就调换位置。让后看第二个数,但是这个时候,就不能再从所有的数中找是否有比他大的数了,因为这个时候前面的数可能比它大,但是不能换,所以从它自身开始查找。#include<stdio.h>struct A{ int x; char y[1...原创 2019-05-07 22:01:36 · 112 阅读 · 0 评论 -
小哼买书 啊哈 算法
小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读 哪些书。小哼让每个同学写出一个自己想读的书的 ISBN号(你知道吗?每本书都有唯一 的 ISBN 号,不信的话你去找本书翻到背面看看)。当然有一些好书会有很多同学都喜欢, 这样就会收集到很多重复的 ISBN号。小哼需要去掉其中重复的 ISBN号,即每个 ISBN号只 保留一个,也就说同样的书只买一本(学校真是够抠门的)。...原创 2019-05-11 21:24:05 · 179 阅读 · 0 评论 -
Can you find it?
Can you find it? ACMGive you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate if you can find the three numbers Ai, Bj, Ck, which satisfy the formula Ai+Bj+C...原创 2019-04-10 14:41:49 · 1614 阅读 · 0 评论