![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 80
叫我AC
不写注释就是耍流氓
展开
-
数据结构实验之栈二:一般算术表达式转换成后缀式
数据结构实验之栈二:一般算术表达式转换成后缀式Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。 Input输入一个算术表达式,以‘#’字符作为结束标志。 Output原创 2017-08-16 11:24:07 · 211 阅读 · 0 评论 -
数据结构之线性表
线性表的运用(1)创建顺序表(2)获取第i个元素(3)查找元素x(4)在某一位置插入数据(5)删除某一位置数据在主函数中调用上述操作。*/#include stdio.h>#include#define maxsize 50typedef struct{int data[maxsize];int last;}Seq原创 2017-08-07 10:15:20 · 187 阅读 · 0 评论 -
顺序表的具体实现
在使用上,malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自动计算所需要大小。比如:123int *p;p = new int;//返回类型为int *类型(整数型指针),分配大小为sizeof(int);或:1转载 2017-08-07 10:54:04 · 198 阅读 · 0 评论 -
找女朋友
找女朋友Time Limit: 15MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description山东理工大学有很多学生,当然也有很多美女,机械实验班的学委(外号:大王八)很想找个女朋友,但他想找个身高和自己相配的女生做女朋友,现有理工大N个美女的身高数据,但由于N的值较大,为了尽快找到合原创 2017-08-21 17:38:36 · 448 阅读 · 0 评论 -
数据结构实验之排序一:一趟快排
数据结构实验之排序一:一趟快排Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。 Input连续输入多组数据,每组输入数据第一行给出正整数N原创 2017-08-21 17:40:28 · 265 阅读 · 0 评论 -
数据结构实验之排序七:选课名单
数据结构实验之排序七:选课名单Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description随着学校规模的扩大,学生人数急剧增加,选课名单的输出也成为一个繁重的任务,我校目前有在校生3万多名,两千多门课程,请根据给定的学生选课清单输出每门课的选课学生名单。原创 2017-08-21 17:41:33 · 368 阅读 · 0 评论 -
数据结构实验之图论二:基于邻接表的广度优先搜索遍历
数据结构实验之图论二:基于邻接表的广度优先搜索遍历Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)原创 2017-08-15 14:22:39 · 299 阅读 · 0 评论 -
数据结构上机测试2-2:单链表操作B
数据结构上机测试2-2:单链表操作BTime Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。Input第一行输入元素个数n;第二原创 2017-08-15 15:12:04 · 329 阅读 · 0 评论 -
数据结构实验之链表五:单链表的拆分
数据结构实验之链表五:单链表的拆分Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数。两个子链表中数据的相对次序与原链表一致。原创 2017-08-15 16:11:42 · 250 阅读 · 0 评论 -
链表之头插法和尾插法
头插法:生成的链表和我输入的数据顺序是相反的,所以又称逆序建表法。例如:e d c b a建成的链表就是 head->a->b->c->d->e算法步骤:①创建一个只有头结点的空链表。②根据待创建链表的元素个数n,循环n次执行以下操作:●生成一个新结点*p;●输入元素值赋给新结点*p的数据域;●将新结点*p插入到头结点之后。算法描述:原创 2017-08-15 16:39:13 · 1090 阅读 · 0 评论 -
数据结构实验之链表六:有序链表的建立
数据结构实验之链表六:有序链表的建立Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。 Input第一行输入整数个数N;第二行输入N个无序的整数。原创 2017-08-15 17:07:41 · 372 阅读 · 0 评论 -
多项式求和
多项式求和Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description多项式描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 ……先请你求出多项式前n项的和。Input第一行输入一个数T代表测试数据个数(T原创 2017-08-15 17:45:35 · 356 阅读 · 0 评论 -
数据结构中的哨兵
设置哨兵是为了减少比较次数,省去对下标越界的判断。应用:假设一个乱序数组,需要查找一个元素是否在该数组中,这时需要用到顺序查找,也就是遍历数组。一般情况下我们会写下如下代码:[cpp] view plain copy print?int Sequential_Search(int *a,int n,int key)转载 2017-08-23 10:27:25 · 4916 阅读 · 1 评论 -
希尔排序
这几天在做关于排序的题目。作为插入排序的扛把子——希尔排序,还是需要复习复习。直接插入排序,当待排序的记录个数较少且待排序序列的关键字基本有序时,效率较高。希尔排序基于以上两点,从减少记录个数和序列基本有序两个方面对直接插入排序进行了改进。[算法步骤]希尔排序实质上是采用分组插入的方法。先将整个待排序记录分割成几组,从而减少参与直接插入排序的数据量,对每组分别进行直接插入排序,然后增加每组原创 2017-08-23 11:31:02 · 619 阅读 · 0 评论 -
数据结构二叉树操作
#include #include typedef struct BNode{ int data; struct BNode *lchild,*rchild;}BiTNode,*BiTree;void CreatTree(BiTree *T); //创建一个二叉树void welcome();转载 2017-12-01 16:40:37 · 254 阅读 · 0 评论 -
二叉树的层次遍历
定义:1、满二叉树:一棵深度为k且有2的k次方减1个结点的二叉树称为满二叉树2、完全二叉树:如果有深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称之为完全二叉树。性质:1、二叉树的第i层上至多有2的i-1次方个结点(i>=1)。2、深度为k的二叉树至多有2的k次方减1个结点(k>=1)。3、对任何一转载 2017-12-01 16:56:56 · 494 阅读 · 0 评论 -
7-2 还原二叉树(25 分)
7-2 还原二叉树(25 分)给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5根据前序遍历的特点, 知前序序列(Pr...原创 2018-03-22 19:33:44 · 4263 阅读 · 1 评论 -
7-12 愿天下有情人都是失散多年的兄妹.
7-12 愿天下有情人都是失散多年的兄妹(25 分)呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚?输入格式:输入第一行给出一个正整数N(2 ≤ N ≤104),随后N行,每行按以下格式给出一个人的信息:本人ID 性别 父亲ID 母亲ID其中ID是5位数字,...原创 2018-03-21 21:32:43 · 754 阅读 · 0 评论 -
数据结构实验:连通分量个数1488
数据结构实验:连通分量个数Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description 在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj连通。如果图中任意两个顶点之间都连通,则称该图为连通图,否则,称该图为非连通图,则其中的极大连通子图称为连通分原创 2017-08-18 10:16:50 · 264 阅读 · 0 评论 -
最好理解的并查集详解
并查集:(union-find sets)一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。l 并查集的精髓(即它的三种操作,结合实现代码模板进行理解):1、Make_Set(x) 把每一个元素初始化为一个集合原创 2017-08-18 08:30:39 · 384 阅读 · 0 评论 -
前缀中缀后缀表达式
它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例:(3 + 4) × 5 - 6 就是中缀表达式- × + 3 4 5 6 前缀表达式3 4 + 5 × 6 - 后缀表达式中缀表达式(中缀记法)中缀表达式是一种通用的算术或逻辑公式表示方法原创 2017-08-16 12:05:04 · 272 阅读 · 0 评论 -
c++引用,什么时候函参必须使用引用?
在什么时候将函数的参数设为引用类型?当你在函数体里要改变参数的值时,就将函数参数类型声明为引用或者指针,这样函数体里对参数本身的操作才能生效。如:int beforeChange; void ChangeValue(int valueBeforeChanged) { //change value }原创 2017-08-09 10:21:43 · 946 阅读 · 0 评论 -
算术表达式的转换
算术表达式的转换Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description小明在学习了数据结构之后,突然想起了以前没有解决的算术表达式转化成后缀式的问题,今天他想解决一下。 因为有了数据结构的基础小明很快就解出了这个问题,但是他突然想到怎么求出算原创 2017-08-16 16:09:19 · 292 阅读 · 0 评论 -
链表算法
#include #include typedef int ElemType; //定义结点类型 typedef struct Node{ ElemType data; //单链表中的数据域 struct Node *next; //单链表的指针域 }Node,*LinkedList;转载 2017-07-25 11:57:33 · 305 阅读 · 0 评论 -
数据结构实验之栈四:括号匹配
数据结构实验之栈四:括号匹配Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description 给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。Input 输入数据有原创 2017-08-16 17:06:50 · 329 阅读 · 0 评论 -
数据结构实验之栈六:下一较大值(二)
数据结构实验之栈六:下一较大值(二)Time Limit: 150MS Memory Limit: 8000KB SubmitStatistic Discuss Problem Description对于包含n(1Input 输入有多组,第一行输入t(1<=t<=10),表示输入的组数;以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依原创 2017-08-16 18:00:47 · 169 阅读 · 0 评论 -
2482——二叉排序树
二叉排序树Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点原创 2017-08-09 15:58:36 · 265 阅读 · 0 评论 -
3346——数据结构实验之二叉树七:叶子问题
Problem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立该二叉树并按从上到下从左到右的顺序输出该二叉树的所有叶子结点。Input 输入数据有多行,每一行是一个长度小于50个字符的字符串。Output 按从上到下从左到右的顺序输出二叉树的叶子结点。 Example Inputabd,,原创 2017-08-09 16:02:18 · 335 阅读 · 0 评论 -
3346--数据结构实验之二叉树五:层序遍历
数据结构实验之二叉树五:层序遍历Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input 输入数据有多行,第原创 2017-08-09 16:19:56 · 250 阅读 · 0 评论 -
kmp字符串匹配算法
KMP算法 在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa转载 2017-08-09 17:15:00 · 199 阅读 · 0 评论 -
图之图的深度优先遍历
1. 图(graph)的基本概念:(1). 图由顶点(vertex)和边组成(edge)。(2). 图又分为有向图(directed graphs)和无向图(undirected graphs)。2. 图的表示方法:图的表示方法有两种,邻接表(adjacency lists)和邻接矩阵(adjacency matrix)。图的示例如下:上图为无向转载 2017-08-10 11:37:08 · 290 阅读 · 0 评论 -
数据结构实验之栈七:出栈序列判定
数据结构实验之栈七:出栈序列判定Problem Description给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈原创 2017-08-17 12:07:42 · 398 阅读 · 0 评论 -
并查集
原创 2017-08-10 12:25:03 · 170 阅读 · 0 评论 -
Catch That Cow
Catch That CowTime Limit: 2000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her原创 2017-08-17 17:33:15 · 227 阅读 · 0 评论 -
2139图结构练习——BFS——从起始点到目标点的最短步数
图结构练习——BFS——从起始点到目标点的最短步数Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的。其中近卫军团在原创 2017-08-17 18:18:05 · 250 阅读 · 0 评论 -
2107-图的深度遍历
图的深度遍历Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。 Input输入第一行为整数n(0 < n < 100),表示数据的组数。原创 2017-08-10 18:21:29 · 363 阅读 · 0 评论 -
3361-数据结构实验之图论四:迷宫探索
数据结构实验之图论四:迷宫探索Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?Input原创 2017-08-10 18:24:15 · 287 阅读 · 0 评论 -
一个前序遍历序列和一个中序遍历序列可以确定一颗唯一的二叉树。
一个前序遍历序列和一个中序遍历序列可以确定一颗唯一的二叉树。 根据前序遍历的特点, 知前序序列(PreSequence)的首个元素(PreSequence[0])为二叉树的根(root), 然后在中序序列(InSequence)中查找此根(root), 根据中序遍历特点, 知在查找到的根(root) 前边的序列为根的左子树的中序遍历序列, 后边的序列为根的右子树的中序遍历序列。...转载 2018-03-21 21:53:48 · 3310 阅读 · 0 评论