数据结构
1. 数据结构OJ题目
2. 在线测试
3. 一些经典数据结构的总结
肉丸不肉
这个作者很懒,什么都没留下…
展开
-
布隆过滤器
【原】布隆过滤器 (Bloom Filter) 详解Bloom Filter的应用极客时间 [数据结构与算法] 课关于布隆过滤器的导图:原创 2020-05-04 09:50:55 · 187 阅读 · 0 评论 -
KMP匹配算法
(原创)详解KMP算法KMP算法的Next数组详解求next数组的快速做题方法:求出部分匹配值数组右移一位,最左补-1(数组下标从0开始)整体+1(数组下标从1开始)...原创 2020-05-04 09:32:44 · 233 阅读 · 0 评论 -
中缀表达式转后缀表达式(加括号法)
加括号法:根据运算符的优先级对中缀表达式加括号(有几个运算符就有几对括号)(原本有的括号不用加)将运算符移到对应的括号后面去掉所有括号,即为后缀表达式eg1:输入为a + b * c + (d * e + f)*g1. 变成( ( a+(b*c) ) + ( ((d*e)+f) *g ) )2. 变成((a(bc)*)+(((de)*f)+g)*)+3. 得到 abc*+de...原创 2020-04-05 18:36:16 · 3885 阅读 · 1 评论 -
Glade实现计算器
jsq.c#include #include #include #include //#define BUFSIZE 1024 //定义临时字符串长度#define w_(builder,type,name) name=GTK_##type(gtk_builder_get_object(builder,#name))double num1;double num2;//分原创 2018-01-18 14:57:05 · 527 阅读 · 1 评论 -
家谱树项目
FamilyTree.c#ifndef FAMILYTREE_C#define FAMILYTREE_C#include "FamilyTree.h"#include #include #include #include void Init_Tree(struct BinNode *tree){ (tree) = NULL;}struct BinNode *S原创 2018-01-18 14:54:16 · 3526 阅读 · 1 评论 -
电网项目
Kruskla.c#include "Kruskal.h"void prime(){ int i, j, min, sum = 0; int next; int dis[1110]; for(i = 1; i <= n; i++) { dis[i] = map[1][i];//假设把1顶点当做源点 } visit[1]原创 2018-01-18 14:04:24 · 217 阅读 · 0 评论 -
停车场系统管理
main.c/* 文件名:main.c 内容:停车场管理系统测试 *//*头文件的包含*/#include #include #include "Stack.h"#include "CQueue.h"#include "park.h"#include "get.h"#include using namespace std;/*测试*/int main(){原创 2018-01-11 18:39:32 · 928 阅读 · 0 评论 -
数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
Problem Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历) Input输入第一行为整数n(0< n <100),表示数据的组数。 对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起原创 2017-11-21 17:15:20 · 498 阅读 · 0 评论 -
数据结构实验之图论二:图的深度遍历
Problem Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。 Input输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的原创 2017-11-21 17:37:55 · 438 阅读 · 0 评论 -
数据结构实验之图论三:判断可达性
Problem Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道原创 2017-11-21 20:44:55 · 464 阅读 · 0 评论 -
数据结构实验之图论四:迷宫探索
Problem Description有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?Input连续T组数据输入,每组数据第一行给出三个正整数,分别表示地下迷宫的结点数N(1 < N <= 1000)、边数M(M <= 3000)和起始结点编号S,随后M行对应M条边,每行给出一对正整数,表示一条边相关联原创 2017-11-21 21:07:49 · 230 阅读 · 0 评论 -
数据结构实验之图论八:欧拉回路
Problem Description在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。 能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学。欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡七桥问题,并证明了更为广泛的有关一笔画的三条结论,人们通常称之为欧拉定理。对于一个连通图,通常把从某结点出发一笔画成所经过的路线叫做欧拉路。人们又原创 2017-12-02 15:20:05 · 199 阅读 · 0 评论 -
数据结构实验之排序三:bucket sort
Problem Description根据人口普查结果,知道目前淄博市大约500万人口,你的任务是帮助人口普查办公室按年龄递增的顺序输出每个年龄有多少人,其中不满1周岁的按0岁计算,1到2周岁的按1岁计算,依次类推,大于等于100岁的老人全部按100岁计算。 Input输入第一行给出一个正整数N(<=5000000),随后连续给出N个整数表示每个人的年龄,数字间以空格分隔。 Output按年龄递原创 2017-12-22 18:57:57 · 173 阅读 · 0 评论 -
数据结构实验之排序四:寻找大富翁
Problem Description2015胡润全球财富榜调查显示,个人资产在1000万以上的高净值人群达到200万人,假设给出N个人的个人资产值,请你快速找出排前M位的大富翁。 Input首先输入两个正整数N( N ≤ 10^6)和M(M ≤ 10),其中N为总人数,M为需要找出的大富翁数目,接下来给出N个人的个人资产,以万元为单位,个人资产数字为正整数,数字间以空格分隔。 Output一行原创 2017-12-20 20:07:54 · 278 阅读 · 0 评论 -
数据结构实验之排序二:交换排序
Problem Description冒泡排序和快速排序都是基于”交换”进行的排序方法,你的任务是对题目给定的N个(长整型范围内的)整数从小到大排序,输出用冒泡和快排对这N个数排序分别需要进行的数据交换次数。 Input连续多组输入数据,每组数据第一行给出正整数N(N ≤ 10^5),随后给出N个整数,数字间以空格分隔。 Output输出数据占一行,代表冒泡排序和快速排序进行排序分别需要的交换次原创 2017-12-16 21:54:02 · 170 阅读 · 0 评论 -
数据结构实验之排序一:一趟快排
Problem Description给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。Input连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10^5),随后给出N个长整型范围内的整数,数字间以空格分隔。 Output输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。 Example Input8 49 38 65 9原创 2017-12-15 17:37:55 · 301 阅读 · 0 评论 -
数据结构实验之查找二:平衡二叉树
Problem Description根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。 Input输入一组测试数据。数据的第1行给出一个正整数N(n <= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。 Output输出平衡二叉树的树根。 Example Input5 88 70 61 96 120 Example Output70原创 2017-12-13 16:29:37 · 196 阅读 · 0 评论 -
在线测试--二叉树
这次测试!!!!所以要好好总结了sad☀试题1 满分值:5.0分 状态:已答 一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足( ) A.所有的结点均无左孩子 B.所有的结点均无右孩子 C.只有一个叶子结点 D.高度等于其结点数 [我的答案] A.所有的结点均无左孩子 先序:根、左子树先序、右子树先序(其中左右子树又分别满足先序) 后序:原创 2017-11-13 11:34:30 · 8566 阅读 · 3 评论 -
数据结构和算法
http://blog.csdn.net/BLLLcat/article/details/76445996?locationNum=4&fps=1原创 2017-11-20 23:13:35 · 166 阅读 · 0 评论 -
数据结构实验之二叉树二:遍历二叉树
Problem Description已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。 Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。 Output每组输入数据对应输出2行: 第1行输出中序遍历序列; 第2行输出后序遍历序列。Example Inputabc,,de,g,原创 2017-10-26 17:26:23 · 320 阅读 · 0 评论 -
数据结构在线测试一二章
时间复杂度还不会看!!!!查找第i个元素,O(1)还是o(n) 3.在pascal中比较容易理解,容易计算的方法是:看看有几重for循环,只有一重则时间复杂度为O(n),二重则为O(n^2),依此类推,如果有二分则为O(logn),二分例如快速幂、二分查找,如果一个for循环套一个二分,那么时间复杂度则为O(nlogn)。一 单项选择题 试题1 满分值:5.0分 状态:已答 带头结原创 2017-09-30 00:04:21 · 1376 阅读 · 1 评论 -
数据结构实验之排序七:选课名单
Problem Description随着学校规模的扩大,学生人数急剧增加,选课名单的输出也成为一个繁重的任务,我校目前有在校生3万多名,两千多门课程,请根据给定的学生选课清单输出每门课的选课学生名单。 Input输入第一行给出两个正整数N( N ≤ 35000)和M(M ≤ 2000),其中N是全校学生总数,M是课程总数,随后给出N行,每行包括学生姓名拼音+学号后两位(字符串总长度小于10)、数原创 2017-12-20 20:51:43 · 212 阅读 · 0 评论 -
在线测试--图
一 单项选择题 试题1满分值:5.0分 状态:已答 以下说法正确的是( ) A.连通分量是无向图中的极小连通子图。 B.强连通分量是有向图中的极大强连通子图。 C.在一个有向图的拓扑序列中,若顶点a在顶点b之前,则图中必有一条弧<a,b>。 D.对有向图G,如果从任意顶点出发进行一次深度优先或广度优先搜索能访问到每个顶点,则该图一定是完全图。 [我的答案] B.强连通分量原创 2017-12-07 21:19:29 · 2087 阅读 · 1 评论 -
数据结构实验之查找一:二叉排序树
Problem Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。 Input输入包含若干组测试数据。每组数据的第1行给出两个正整数N (n < = 10)和L,分别是输入原创 2017-12-13 15:07:48 · 893 阅读 · 0 评论 -
数据结构实验之排序六:希尔排序
Problem Description我们已经学习了各种排序方法,知道在不同的情况下要选择不同的排序算法,以期达到最好的排序效率;对于待排序数据来说,若数据基本有序且记录较少时, 直接插入排序的效率是非常好的,希尔排序就是针对一组基本有序的少量数据记录进行排序的高效算法。你的任务是对于给定的数据进行希尔排序,其中增量dk=n/(2^k)(k=1,2,3……) Input连续输入多组数据,每组输入数原创 2017-12-20 20:47:09 · 259 阅读 · 0 评论 -
数据结构实验之查找五:平方之哈希表
Problem Description给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,…,m-1 Input输入包含多组测试数据,到 EOF 结束。 每组数据的第1行给出两个正整数N(N <= 500)和P(P >= 2N的最小素数),N是要插入原创 2017-12-14 21:14:49 · 235 阅读 · 0 评论 -
C语言栈—多位数的运算式求和
#include <stdio.h>#include <stdlib.h>#include <math.h>const char oper[7] = { '+', '-', '*', '/', '(', ')', '=' };#define OK 1#define ERROR 0typedef char SElemType;typedef int...原创 2018-07-11 00:09:17 · 1691 阅读 · 0 评论 -
求多位数的运算表达式结果—栈
因为单片机实训的项目是关于计算器,所以需要多位数来进行连续混合运算,所以需要用到栈。但是和上学期做的题还不太一样,所以 整数、负数、小数的连续混合运算#include<iostream>#include<string>#include<stdlib.h>#include<stdio.h>using namespace std;c...原创 2018-07-10 12:37:36 · 1411 阅读 · 0 评论 -
指针
指针和引用关系:(高质量编程指南) http://blog.csdn.net/thisispan/article/details/7456169详解指针–区别指针类型和指针所指向的类型(似懂非懂) http://blog.csdn.net/cyh183269855/article/details/52278941转载 2018-01-14 14:46:05 · 159 阅读 · 0 评论 -
类型字节数(64位)
内存管理:原创 2018-01-13 11:15:37 · 330 阅读 · 0 评论 -
排序
一、桶排序输入n个0-1000之间的整数,将它们从小到大排序。 0-1000之间的数,需要1001个桶,来表示0-1000之间每一个数出现的次数。每一个桶的作用是“标记”每个数出现的次数。#include <iostream>#include <stdio.h>using namespace std;int main(){ int n, t; int book[1010原创 2017-12-17 13:46:19 · 320 阅读 · 0 评论 -
图的深度遍历和广度遍历
深度优先搜索深度优先搜索(Depth First Search)DFS类似于树的先根遍历深搜例子:走迷宫,你没有办法用分身术来站在每个走过的位置。不撞南山不回头。深度优先搜索 从初始状态S开始,利用规则生成搜索树下一层任一个结点,检查是否出现目标状态G,若未出现,以此状态利用规则生成再下一层任一个结点,再检查是否为目标节点G,若未出现,继续以上操作过程,一直进行到叶节点(即不能再原创 2017-11-27 22:52:15 · 512 阅读 · 0 评论 -
数据结构实验之图论十一:AOE网上的关键路径
Problem Description一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG。与AOV不同,活动都表示在了边上。如上所示,共有11项活动(11条边),9个事件(9个顶点)。整个工程只有一个开始点和一个完成点。即只有一个入度为零的点(源点)和只有一个出度为零原创 2017-12-02 16:49:32 · 867 阅读 · 0 评论 -
数据结构实验之排序五:归并求逆序数
Problem Description对于数列a1,a2,a3…中的任意两个数ai,aj (i < j),如果ai > aj,那么我们就说这两个数构成了一个逆序对;在一个数列中逆序对的总数称之为逆序数,如数列 1 6 3 7 2 4 9中,(6,4)是一个逆序对,同样还有(3,2),(7,4),(6,2),(6,3)等等,你的任务是对给定的数列求出数列的逆序数。 Input输入数据N(N <= 1原创 2017-12-20 20:34:47 · 162 阅读 · 0 评论 -
数据结构实验之图论六:村村通公路
Problem Description 当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出的数据表,求使得每个村都有公路连通所需要的最低成本。 Input 连续多组数据输入,每组数据包括村落数目N(N <= 1000)和可供选择的道路数目M(M <= 3000),随后原创 2017-11-27 23:57:02 · 581 阅读 · 0 评论 -
最小生成树和最短路径
http://www.cnblogs.com/aiyelinglong/archive/2012/03/26/2418707.html转载 2017-12-06 11:26:16 · 349 阅读 · 0 评论 -
驴友计划
using namespace std; #define max1 9989999; struct { int len,money; }st[1001][1001]; void GSH(int n) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) {原创 2017-11-28 00:04:56 · 382 阅读 · 0 评论 -
数据结构实验之查找三:树的种类统计
Problem Description在一个给定的无重复元素的递增序列里,查找与给定关键字相同的元素,若存在则输出找到的位置,不存在输出-1。 Input一组输入数据,输入数据第一行首先输入两个正整数n ( n < = 10^6 )和m ( m < = 10^4 ),n是数组中数据元素个数,随后连续输入n个正整数,输入的数据保证数列递增。 随后m行输入m个待查找的关键字key Output若在原创 2017-12-13 17:35:47 · 307 阅读 · 0 评论 -
数据结构实验之图论十:判断给定图是否存在合法拓扑序列
Problem Description给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。 Input输入包含多组,每组格式如下。 第一行包含两个整数n,m,分别代表该有向图的顶点数和边数。(n<=10) 后面m行每行两个整数a b,表示从a到b有一条有向边。Output若给定有向图存在合法拓扑序列,则输出YES;否则输出NO。Example Input1 0 2 2 1 2 2 1原创 2017-12-02 16:23:54 · 316 阅读 · 0 评论 -
数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
Problem Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道原创 2017-11-22 15:27:56 · 1273 阅读 · 0 评论