数据结构
@萌橙开心
这个作者很懒,什么都没留下…
展开
-
数据结构——表达式转换
表达式分为前缀,中缀,后缀,三种表达形式。两者之间的转换规则请参考这篇博客。https://blog.csdn.net/Antineutrino/article/details/6763722 这里面详细讲述了,三者之间的转换关系,看完后可以掌握基本的表达式转换。除去表达式转换的基本规则,个人认为表达式转换有以下三个难点:1、小数没有办法表示和输出;2、数字本身自带的负号难以表达和实现;...原创 2018-10-03 18:46:17 · 3584 阅读 · 0 评论 -
数据结构—— 城市间紧急救援
7-1 城市间紧急救援 (25 分)作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出4个正整数N、M、S、D,其中N(2...原创 2018-11-21 10:50:11 · 3028 阅读 · 0 评论 -
数据结构——天梯地图
7-2 天梯地图 (30 分)本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。输入格式:输入在第一行给出两个正整数N(2 ≤ N ≤ 500)和M,分别为地图中所有标记地点的个数和连接地点的道路条数。随后M行,每行按如下格式给出一条道路的信...原创 2018-11-21 10:58:29 · 1026 阅读 · 0 评论 -
数据结构——是否完全二叉搜索树
首先给出题干:7-2 是否完全二叉搜索树 (30 分)将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。输出格式:将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输...原创 2018-12-03 09:25:47 · 1471 阅读 · 0 评论 -
数据结构——判断是否为同一颗二叉搜索树
是否同一棵二叉搜索树 (25 分)给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L...原创 2018-12-03 09:30:42 · 729 阅读 · 0 评论 -
数据结构期末考试复习资料(函数题)
6-2 顺序表基本操作 (10 分)本题要求实现顺序表元素的增、删、查找以及顺序表输出共4个基本操作函数。L是一个顺序表,函数Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在顺序表的pos位置插入一个元素e(pos应该从1开始),函数Status ListDelete_Sq(SqList &L, int p...原创 2018-12-20 20:52:11 · 965 阅读 · 0 评论 -
数据结构期末考试复习资料(选择判断)
数据的逻辑结构是指数据的各数据项之间的逻辑关系。X,逻辑结构就是数据元素间的逻辑关系,而不是数据元素内部的数据项之间的关系.抽象数据类型中基本操作的定义与具体实现有关X,抽象数据结构类型不需要考虑其包含的数据对象和在不同处理器中的表现和实现细节数据的()包括集合、线性结构、树形结构和图形结构四种基本类型。 (2分)A.存储结构B.逻辑结构C.基本运算D.算法描述B...原创 2018-12-16 17:56:08 · 7197 阅读 · 0 评论 -
数据结构期末考试复习资料(编程题)
7-90 两个有序链表序列的合并 (20 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样...原创 2018-12-22 11:53:16 · 3299 阅读 · 0 评论 -
数据结构——选择排序与直接插入排序的区别
一个经常被遗忘的问题在这里简单整理一下。先给出关于这两种排序方法的简单介绍的博客: 插入排序 选择排序看完博客大致可以了解到两种排序方法的机制:插入排序:通过不断的元素的位置交换,不断更新该元素之前的元素的顺序,从而排序。选择排序:通过不断寻找该元素之后的最大/最小值,每次遍历直叫交换一次,从而排序。...原创 2018-12-18 16:13:47 · 3123 阅读 · 0 评论 -
数据结构——畅通工程之局部最小花费问题
7-1 畅通工程之局部最小花费问题 (35 分)某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。输入...原创 2018-11-21 10:31:38 · 958 阅读 · 1 评论 -
数据结构——PTA 邻接矩阵存储图的深度优先遍历、邻接表存储图的广度优先遍历
广度优先与深度优先是遍历图的两种基本方法,大致的思想是DFS为递归,而BFS是队列。这里给出PTA两道题目的答案,方法很基本,但第三个形参还是第一次见,去网上搜了搜给出的说法是调用函数的地址,但个人感觉就是调用这个函数。。。下面给出两段代码void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ){ Vertex p...原创 2018-11-19 09:22:03 · 3960 阅读 · 0 评论 -
数据结构—— 家谱处理
这是一道PTA中的题目,在这里先给出题干。7-2 家谱处理 (30 分)人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究。实验中,使用计算机处理家谱。为了实现这个目的,研究人员将家谱转换为文本文件。下面为家谱文本文件的实例:John Robert Frank Andrew Nancy David家谱文本文件中,每一行包含一个人...原创 2018-11-08 19:36:06 · 3419 阅读 · 0 评论 -
数据结构——列车调度
题目链接:https://pintia.cn/problem-sets/1045870129681440768/problems/1045870197130047495#p-2题目大意:给你一列火车,上面有表号,问给你几个火车隧道,能使车厢从大到小。 一道有思维结构的模拟题。先说一下核心解体思想:就是一个序列里,有多少个从大到小排好序的序列,求个数。朴素的模拟思想,先读入...原创 2018-10-14 20:41:39 · 2573 阅读 · 0 评论 -
数据结构—— 银行排队问题之单窗口“夹塞”版
题目大意:排队“夹塞”是引起大家强烈不满的行为,但是这种现象时常存在。在银行的单窗口排队问题中,假设银行只有1个窗口提供服务,所有顾客按到达时间排成一条长龙。当窗口空闲时,下一位顾客即去该窗口处理事务。此时如果已知第i位顾客与排在后面的第j位顾客是好朋友,并且愿意替朋友办理事务的话,那么第i位顾客的事务处理时间就是自己的事务加朋友的事务所耗时间的总和。在这种情况下,顾客的等待时间就可能被影响。假设...原创 2018-10-09 20:04:17 · 2130 阅读 · 0 评论 -
数据结构——银行排队问题之单队列多窗口加VIP服务
题目大意:有很多个服务窗口,有一个窗口是VIP窗口,如果这个窗口有空闲,并且排队等待的人里有VIP,那么VIP先去这个窗口办理业务(SORRY,充钱就是了不起),如果果有多个窗口可以选择,顾客会优先选择窗口编号小的。题目链接:https://pintia.cn/problem-sets/1042354461223579648/problems/1042355242509160453#p-6...原创 2018-10-17 16:37:53 · 6270 阅读 · 0 评论 -
数据结构——最长对称子串
题目大意:就是让你找这个字符串里最长的对称序列。题目链接:https://pintia.cn/problem-sets/1052335451183816704/problems/1052335487275802632#p-1 思路:枚举每一个对称中心,判断时候对称,由于字符串长度仅仅为1000,所以不会超时,比较简单的模拟题。唯一注意的是这里的对称方式有两种,一种是aacaa,一种...原创 2018-10-17 17:42:11 · 625 阅读 · 0 评论 -
数据结构——求二叉树高度
这个题。。。有点迷。。。首先注意题干,人家让你写的是Getheight函数,那个构建树那个函数 是被忽略掉不需要去写的,一开始还在为怎么去构建这个树想了半天。。。。裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typedef char ElementType;typedef struct TNode *Po...原创 2018-11-07 08:34:07 · 8167 阅读 · 0 评论 -
数据结构——二叉树的四种遍历方式
首先来说一下哪四种遍历方式:前中后、层序遍历,四种遍历方式详解,注意这篇博客用的是STL,但是遍历思想与递归基本一致,体会那种思想即可。前中后序的递归区别主要在于输出的语句究竟该写在哪里,这个主要看节点是在什么位置输出,如果第一个输出就在最前面,如果第二个输出,就在左节点后面。。。以此类推(之所以这样判断,是因为我们是从根节点开始遍历的)。题目:裁判测试程序样例:#include...原创 2018-11-07 09:33:55 · 431 阅读 · 0 评论 -
数据结构——先序输出叶子结点
保持先序遍历不变,加一个特殊判断是否左右节点为空即可。(注意叶子结点一定是左右孩子均为空)下面给出AC代码:#include <stdio.h>#include <stdlib.h>typedef char ElementType;typedef struct TNode *Position;typedef Position BinTree;struc...原创 2018-11-07 09:39:16 · 1140 阅读 · 0 评论 -
数据结构——根据两种遍历方式推得另外一种遍历方式
首先说一下,只有 先序+中序——>后序,以及后序+中序——>前序,这两种推举方式,因为当只给出前序以及后序的遍历方式时,推得的中序是不唯一的,也就是不存在。方法(核心):是根据每种遍历方式的特点,以前序遍历和后序遍历为基准,对中序遍历进行割裂(这里姑且称它为割裂法)。这个要求我们对三种遍历方式 烂熟于心(必须透彻了解!!!)才能推得建树方式。这里给出两篇讲的很不错的博客 三种遍...原创 2018-11-07 19:49:15 · 1020 阅读 · 0 评论 -
数据结构——树的同构
讲真,这道题真没看出和树还有森林有什么关系,就是简单的同构判断,无需考虑左右子树,因为经历过左右有限(注意这里是有限次,而不是全部变换)次变化后,左右子树区分不明显。 所以这道题只需要我们判断相同的节点,是否包含着相同的左右孩子即可。 思路很简单,模拟了一边过后,WA1,仔细查找代码后发现一个问题,自己写的代码,当只有头节点这一个节点,并且不相同时,是无法通过运行的。 给出...原创 2018-11-08 08:01:44 · 568 阅读 · 0 评论 -
部落 解题报告
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式:输入在第一行给出一个正整数N(≤104),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:KP[1]P[2]⋯P[K]其中K是小圈子...原创 2019-03-26 10:46:39 · 331 阅读 · 0 评论