
数据结构
文章平均质量分 62
HyperDai
Hyper Hyper Hyper Dai~~
展开
-
出栈合法性 - STL-栈的应用
题目描述 已知自然数1,2,…,N(1<=N<=100)依次入栈,请问序列C1,C2,…,CN是否为合法的出栈序列。 输入 输入包含多组测试数据。 每组测试数据的第一行为整数N(1<=N<=100),当N=0时,输入结束。 第二行为N个正整数,以空格隔开,为出栈序列。 输出 对于每组输入,输出结果为一行字符串。 如给出的序列是合法的出栈序列,则输出Yes,否则输出No。 样例输入原创 2017-05-14 23:27:40 · 1535 阅读 · 0 评论 -
自底向上遍历二叉树
自底向上遍历二叉树时间限制:10000ms 单点时限:1000ms 内存限制:256MB描述给定一棵包含N个节点的二叉树,每个节点编号1~N。特别的,如果u和v(u 4 / \ 3 7 现在希望你从最左的叶子节点开始依次自底向上遍历,对于每一个叶子向上遍历到根,并且在遍历过程中忽略已经遍历过的节点。对于两个叶子节点X和Y,我们是这样判断哪个更靠左:找到X和Y原创 2018-01-19 17:05:31 · 1669 阅读 · 0 评论 -
hihocoder - 股票价格3 - 维护栈 & 线段树
题目时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在关注股票,为了计算股票可能的盈利,他获取了一只股票最近N天的价格A1~AN。 小Hi想知道,对于第i天的股票价格Ai,几天之后股价会第一次超过Ai。 假设A=[69, 73, 68, 81, 82],则对于A1=69,1天之后的股票价格就超过了A1;对于A2=73,则是2天之后股票价格才超过A2原创 2017-11-05 15:58:30 · 585 阅读 · 0 评论 -
桶排序模板 C++实现
//bucket sort //现在假设我有一堆蛋,包括麻雀蛋、鸡蛋、恐龙蛋,现在我要将这几种蛋排序下序; //有点常识就知道,这三种类别的蛋大小是不一样的,而且每一类蛋的大小也是有区别的,现在我对这三种蛋进行排序,我是这样排的: //准备三个桶,把同一类别的蛋放到同一个桶中,然后对每一个桶内的蛋进行排序,然后按顺序从三个桶中取出相应蛋排序; //即,从放有麻雀蛋的桶里取出所有麻雀蛋,因为已转载 2017-11-11 16:05:09 · 1562 阅读 · 1 评论 -
hdu - 敌兵布阵 - 树状数组&线段树
树状数组推荐文章>>>Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不原创 2017-07-25 18:03:57 · 276 阅读 · 0 评论 -
并查集总结
并查集详解 - ACM并查集算法 - 并查级特点并查集总结总结两点就是“并”和“查”。何谓“并查集”定义并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。具体操作将编号分别为1…N的N个对象划分为不相交集合,在每个集合中,选择其中某个元素代表所在集合原创 2017-06-05 22:40:55 · 404 阅读 · 0 评论 -
无线网络 - 并查集
一场地震在东南亚发生了。不幸的是ACM组织通过电脑建立的无线网络遭到了毁灭性的影响—--网络中所有的电脑都损坏了。在陆续的维修电脑之后,无线网络有逐渐开始再一次运作了。由于硬件的制约,每两台电脑只能保持不超过d米的距离,才可以直接进行通讯。但是每台电脑又可以作为其它两台电脑通讯的中介点,也就是说假设A电脑与B电脑不在能直接通讯的的范围内,但是它们可以通过同时能与A和B电脑通讯的C电脑建立间接通讯关系。在维修的过程中原创 2017-06-05 21:50:09 · 445 阅读 · 0 评论 -
*hdu - 畅通工程 - 并查集
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行原创 2017-06-06 17:19:20 · 441 阅读 · 0 评论 -
hdu - 小希的迷宫 - 并查集
Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现原创 2017-06-06 17:28:01 · 431 阅读 · 0 评论 -
哈夫曼树的带权路径长度 - STL - priority_queue(单调队列)
题目描述给定n个权值作为n个叶子结点,构造哈夫曼树, 求其带权路径长度。输入输入由多组数据组成。 每组数据分成两行。第一行仅一个整数n(2输出对于每组测试数据,输出一行,即其对应哈夫曼树的带权路径长度对1000000007取模。样例输入4 7 5 2 4 8 5 29 7 8 14 23 3 11样例输出35 271提示注意运原创 2017-07-04 23:07:29 · 2105 阅读 · 1 评论 -
课程设计 - 单词检查
hnust 单词查找 许多应用程序,如字处理软件,邮件客户端等,都包含了单词检查特性。单词检查是根据字典,找出输入文本中拼错的单词,我们认为凡是不出现在字典中的单词都是错误单词。不仅如此,一些检查程序还能给出类似拼错单词的修改建议单词。 例如字典由下面几个单词组成: bake cake main rain vase 如果输入文件中有词vake ,检查程序就能发现其是一个错误的单词,并且给出 bake, ca原创 2017-06-13 15:01:40 · 8022 阅读 · 15 评论 -
图的遍历 - 邻接矩阵 - 深搜与广搜
深搜与广搜图论的遍历基础。而且今天讨论的是最简单的邻接矩阵。 下图是邻接矩阵的大致概念。 在C语言中邻接矩阵的定义方式如下://-----图的邻接矩阵存储表示-----#define MaxInt 32767//表示极大值#define MVNum 100//最大顶点数typedef char VerTexType;//假设顶点的数据类型为字符型typedef int ArcType原创 2017-05-30 16:22:40 · 2275 阅读 · 1 评论 -
Binary Search Tree(二叉搜索树)
problem description A binary search tree is a binary tree that satisfies the following properties: • The left subtree of a node contains only nodes with keys less than the node’s key. • The right s原创 2017-05-04 11:42:09 · 719 阅读 · 0 评论 -
学生管理系统的设计与实现 - 顺序表
注:实验用书为 数据结构 C语言版 第2版,人民邮电出版社出版。 实验题目:学生管理系统的设计与实现 实验环境:Visual C++ 6.0或其他C++环境 一、实验目的 1、掌握重要的排序算法――直接插入排序和快速排序; 2、掌握折半查找算法。 3、综合运用所学数据结构知识,提高解决实际问题的能力。 二、实验内容 设计并实现一个学生管理系统,即定义一个包含学生信息(学号,姓名,成原创 2017-05-26 00:05:41 · 19250 阅读 · 5 评论 -
算术表达式求值 - 栈的应用
一、实验目的 1、掌握栈的定义及实现; 2、掌握利用栈求解算术表达式的方法。 二、实验内容 通过修改完善教材中的算法3.4,利用栈来实现算术表达式求值的算法。对算法3.4中调用的几个函数要给出其实现过程: 1、函数In(c):判断c是否为运算符; 2、函数Precede(t1,t2):判断运算符t1和t2的优先级; 3、函数Operate(a,theta,b):对a和b进行二元运算th原创 2017-05-16 17:00:58 · 13536 阅读 · 2 评论 -
二叉树的基本操作
一、实验目的 1、掌握二叉树的定义; 2、掌握二叉树的基本操作,如二叉树的建立、遍历、结点个数统计、树的深度计算等。 二、实验内容 (一)用递归的方法实现以下算法: 1、以二叉链表表示二叉树,建立一棵二叉树(算法5.3); 2、输出二叉树的中序遍历结果(算法5.1); 3、输出二叉树的前序遍历结果(见讲稿); 4、输出二叉树的后序遍历结果(见讲稿); 5、计算二叉树的深度(算法5.原创 2019-04-21 01:43:02 · 122062 阅读 · 65 评论 -
线性表的基本操作实现 - 链表与顺序表
注:实验用书为 数据结构 C语言版 第2版,人民邮电出版社出版。 一、实验目的 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 二、实验内容 定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表,使其具有如下功能: 1、根据指定学生个数,逐个输入学生信息; 2、逐个显示学生表中所有学生的相关信息; 3、根据姓名进行查找,返回此学生的学号和成绩; 4原创 2017-05-14 19:38:48 · 4129 阅读 · 2 评论 -
排序算法C++实现—八大排序算法
前言把排序算法忘光了,回顾《数据结构》严蔚敏版,并看了网上的几篇文章后,随再做一次总结。本文不会具体介绍每一个算法,我觉得要具体看,可以看《数据结构》这本书,写得很好,不懂的再百度补充知识,主要是每一种方式的实现展示出来排序算法C++实现1.插入排序1.1.直接插入排序/** 直接插入排序* int a[]为需要排序的数组* start为起始位置,要求start&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp原创 2019-01-15 01:08:25 · 656 阅读 · 0 评论