数据结构作业题
Healer66
他是谁啊?他究竟是什么身份啊?
展开
-
L2-2 玩转二叉树 (25 分)
L2-2玩转二叉树(25分)给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的...原创 2019-03-26 10:21:53 · 449 阅读 · 0 评论 -
最长对称子串(马拉车算法)
7-1 最长对称子串 (25 分)对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP symmetric...原创 2018-10-17 20:14:45 · 332 阅读 · 0 评论 -
第四章作业-串
1-1函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。 (1分)T 1-2C 语言中 , 字符串常量最后一个字符是结束标志 , 该结束符是'0' 。 (1分)T 1-3char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。 (1分)T ...原创 2018-10-17 18:42:13 · 2927 阅读 · 0 评论 -
表达式转换
7-1 表达式转换 (25 分)算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)...原创 2018-09-28 20:01:43 · 604 阅读 · 0 评论 -
递归程序设计方法练习--递归输出单链表
6-2 递归程序设计方法练习--递归输出单链表 (10 分)本题要求用递归方法编写递归函数实现无头结点单链表的输出操作函数。L是一个不带头结点的单链表,函数void ListPrint_L_Rec(LinkList L)要求用递归的方法输出无头结点之单链表中各个元素的值,每个元素的前面都有一个空格(包括首元素)。递归思想可借鉴下述代码中链表创建的递归函数。函数接口定义:void Li...原创 2018-09-28 13:34:48 · 5141 阅读 · 2 评论 -
符号配对
7-2 符号配对 (20 分)请编写程序检查C语言源程序中下列符号是否配对:/*与*/、(与)、[与]、{与}。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则...原创 2018-09-28 11:45:03 · 3349 阅读 · 1 评论 -
列车调度
7-2 列车调度 (25 分)火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?...原创 2018-10-11 19:23:14 · 1872 阅读 · 1 评论 -
第三章 循环队列及线性结构综合
1-1所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。 (1分) FF:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。这种循环队列可以以单链表的方式来在实际编程应用中来实现。因此,循环队列是一个抽象的数据结构,而单向循环链表或循环数组是具体的实现方式,不是数据结构本身。 1-2在用...原创 2018-10-11 18:01:32 · 10601 阅读 · 0 评论 -
第三章作业题3--队列
2-1为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是? (1分)堆栈 队列 树 图2-2若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的...原创 2018-10-11 17:30:59 · 13026 阅读 · 0 评论 -
第三章作业1-栈
1-1通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。 (2分) F:应是231 1-2若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1。 (2分)F:[解析] 一串数据依次通过一个栈,并不能保证出栈数据的次序总是倒置,...原创 2018-09-24 09:33:36 · 24639 阅读 · 1 评论 -
第五章作业-数组
1-1在对数组全部元素赋初值时,不可以省略行数,但能省略列数。 (1分) F可以省略行,但不能省略列,因为总的元素个数已知,如果只知道行数,并无法确定第二维中每一维有多少元素.但如果知道列数,即已知第二维每一维有多少元素,则,可以计算出第一维的维数.换句话说,开数组是从低维向高维进行的. 1-2Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (1...原创 2018-10-25 16:21:52 · 9203 阅读 · 0 评论 -
第六章树和二叉树作业1—二叉树
1-1某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无右孩子。(2分)T后序:左右根中序:左根右想要一样,必没有右孩子。 1-2某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。(2分) F后序:左右根中序:左根右想要一样,必没有右孩子。 1-3存在一棵总共有2016个结点的二叉树,其中有16...原创 2018-11-01 18:38:53 · 13548 阅读 · 0 评论 -
第十章排序--交换类排序与选择类排序-
2-1在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都会停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?(2分)O(logN) O(N) O(NlogN) O(N2)2-2在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?(2分)O(logN) O(N)...原创 2019-01-15 22:48:35 · 4322 阅读 · 0 评论 -
第十章-排序-归并排序与基数排序
2-1对N个记录进行归并排序,归并趟数的数量级是: (1分)O(logN) O(N) O(NlogN) O(N2)2-2对N个记录进行归并排序,空间复杂度为: (1分)O(logN) O(N) O(NlogN) O(N2)2-3给出关键字序列{ 431, 56, 57, 46, 28, 7, 331, 33, 24, 63 },下面哪个选择是按次位优...原创 2018-11-30 17:07:08 · 17255 阅读 · 0 评论 -
天梯地图 (最短路)
7-2 天梯地图 (30 分)本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。输入格式:输入在第一行给出两个正整数N(2 ≤ N ≤ 500)和M,分别为地图中所有标记地点的个数和连接地点的道路条数。随后M行,每行按如下格式给出一条道路的信...原创 2018-11-21 17:55:51 · 431 阅读 · 0 评论 -
城市间紧急救援(最短路)
7-1 城市间紧急救援 (25 分)作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出4个正整数N、M、S、D,其中N(2...原创 2018-11-20 21:33:56 · 359 阅读 · 1 评论 -
第七章--图--基本概念
1-1无向连通图至少有一个顶点的度为1。 (1分)F关于连通图举个例子:一个三角形的连通图,顶点的度数都为2 1-2用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。 (1分) F邻接矩阵的空间复杂度为O(n2),与边的个数无关。邻接表的空间复杂度为O(n+e),与图中的结点个数和边的个数都有关。 1-3用邻接矩阵法存储图,占用的...原创 2018-11-14 20:25:24 · 16212 阅读 · 1 评论 -
第六章树和二叉树--Huffman树
1-1对N(≥2)个权值均不相同的字符构造哈夫曼树,则树中任一非叶结点的权值一定不小于下一层任一结点的权值。 (2分)T 2-1对N(N≥2)个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是: (2分)树中一定没有度为1的结点 树中两个权值最小的结点一定是兄弟结点 树中任一非叶结点的权值一定不小于下一层任一结点的权值 该树一定是一棵完全二叉树2-2...原创 2018-11-08 17:28:57 · 6652 阅读 · 0 评论 -
2018-2019-1-数据结构期中考试-网络与信息安全2017
1-1某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。(2分)T前序:根左右中序:左根右要想一样,无左孩子1-2采用顺序存储结构的循环队列,出队操作会引起其余元素的移动。 (2分) F顺序存储不会 1-3用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。 (2分)T 有多少个点,开多大内存...原创 2019-01-15 22:59:20 · 4466 阅读 · 0 评论 -
二叉树的遍历
6-2 二叉树的遍历 (25 分)本题要求给定二叉树的4种遍历。函数接口定义:void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );void LevelorderTraversal( BinTree BT );...原创 2018-11-01 19:42:56 · 276 阅读 · 0 评论 -
堆栈操作合法性
7-17 堆栈操作合法性 (20 分)假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个...原创 2018-09-20 16:04:10 · 513 阅读 · 5 评论 -
jmu-ds-小孩报数问题
7-2 jmu-ds-小孩报数问题 (15 分)有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。输入格式:第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输...原创 2018-09-15 13:20:27 · 1032 阅读 · 2 评论 -
jmu-ds-集合的并交差运算
7-1 jmu-ds-集合的并交差运算(15 分)有两个整数集合A和B,现在要求实现集合的并、交、差运算。例如A={2,7,9} ,B={3,7,12,2},则集合的并C=A∪B={2,7,9,3,12},而集合的交 C=A∩B={2,7},集合的差C=A-B={9}。集合A和B中元素个数在1~100之间。输入格式:三行,第一行分别为集合A,B的个数第二行为A集合的数据第三行为B集...原创 2018-09-19 11:00:40 · 1931 阅读 · 0 评论 -
jmu-ds-顺序表区间元素删除
7-2 jmu-ds-顺序表区间元素删除(15 分)若一个线性表L采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。输入格式:三行数据,第一行是顺序表的元素个数,第二行是顺序表的元素,第三行是x和y。输出格式:删除元素值在[x,y]之间的所有元素后的顺序表。输入样例:10...原创 2018-09-12 21:52:24 · 2113 阅读 · 0 评论 -
有序顺序表的插入(函数)
本题要求实现递增顺序表的有序插入函数。L是一个递增的有序顺序表,函数Status ListInsert_SortedSq(SqList &L, ElemType e)用于向顺序表中按递增的顺序插入一个数据。 比如:原数据有:2 5,要插入一个元素3,那么插入后顺序表为2 3 5。 要考虑扩容的问题。函数接口定义:Status ListInsert_SortedSq(SqList ...原创 2018-09-12 09:46:19 · 6023 阅读 · 1 评论 -
顺序表创建和就地逆置(函数)
本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(SqList &L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次为1,2,3,4,则逆置后为4,3,2,1。函数接口定义:Status ListCreate_Sq(SqList &a...原创 2018-09-16 18:20:51 · 1673 阅读 · 0 评论 -
第二章作业题1-顺序表
1-1对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 (1分)T 1-2若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。 (2分)T 1-3对于顺序存储的长度为N的线性表,删除第一个元素和插入最后一个元素的时间复杂度分别对应为O(1)和O(N)。 (1分...原创 2018-09-16 18:19:51 · 23221 阅读 · 0 评论 -
单链表元素定位(函数)
6-2 单链表元素定位(12 分)本题要求在链表中查找第一个数据域取值为x的节点,返回节点的位序。L是一个带头结点的单链表,函数ListLocate_L(LinkList L, ElemType x)要求在链表中查找第一个数据域取值为x的节点,返回其位序(从1开始),查找不到则返回0。例如,原单链表各个元素节点的元素依次为1,2,3,4,则ListLocate_L(L, 1)返回1,ListL...原创 2018-09-16 18:18:02 · 2958 阅读 · 1 评论 -
循环单链表区间删除(函数)
6-1 循环单链表区间删除(15 分)本题要求实现带头结点的循环单链表的创建和单链表的区间删除。L是一个带头结点的循环单链表,函数ListCreate_CL用于创建一个循环单链表,函数ListDelete_CL用于删除取值大于min小于max的链表元素。函数接口定义: Status ListCreate_CL(LinkList &CL); void ListD...原创 2018-09-16 18:16:40 · 916 阅读 · 0 评论 -
第一章作业3-链式存储结构及其操作
2-1线性表若采用链式存储结构时,要求内存中可用存储单元的地址 (1分)必须是连续的 连续或不连续都可以 部分地址必须是连续的 一定是不连续的[解析] 在链式存储结构中,存储数据结构的存储空间可以是连续的,也可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。2-2线性表L在什么情况下适用于使用链式结构实现? (1分)需不断对L进行删除插入 需...原创 2018-09-17 09:46:23 · 10133 阅读 · 2 评论 -
求链式线性表的倒数第K项
7-3 求链式线性表的倒数第K项 (20 分)给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1...原创 2018-09-15 17:19:26 · 425 阅读 · 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 pos, Ele...原创 2018-09-10 15:22:17 · 2957 阅读 · 0 评论 -
第一章作业1-数据结构基本概念
1-1若用链表来表示一个线性表,则表中元素的地址一定是连续的。 (1分) F:顺序表示时连续,链式表示时一般不连续 1-2数据的逻辑结构是指数据的各数据项之间的逻辑关系。 (1分) F:逻辑结构就是数据元素间的逻辑关系,而不是数据元素内部的数据项之间的关系 1-3抽象数据类型中基本操作的定义与具体实现有关。 (1分) F:没有关系。抽象操作是外部怎样使用该数...原创 2018-09-16 17:51:00 · 6677 阅读 · 0 评论 -
jmu-ds-循环单链表的基本运算
7-1 jmu-ds-循环单链表的基本运算 (15 分)实现循环单链表的基本运算:初始化、插入、删除、求表的长度、判空、释放。(1)初始化循环单链表L,输出(L->next==L)的逻辑值;(2)依次采用尾插法插入元素:输入分两行数据,第一行是尾插法需要插入的字符数据的个数,第二行是具体插入的字符数据。(3)输出循环单链表L;(4)输出循环单链表L的长度;(5)判断循环单链表L...原创 2018-09-19 11:00:26 · 1144 阅读 · 0 评论 -
循环单链表区间删除
6-1 循环单链表区间删除 (15 分)本题要求实现带头结点的循环单链表的创建和单链表的区间删除。L是一个带头结点的循环单链表,函数ListCreate_CL用于创建一个循环单链表,函数ListDelete_CL用于删除取值大于min小于max的链表元素。函数接口定义: Status ListCreate_CL(LinkList &CL); void List...原创 2018-09-15 10:42:28 · 518 阅读 · 0 评论 -
第二章作业题3-链表(2)
2-1对于一非空的循环单链表,h和p分别指向链表的头、尾结点,则有:(2分)p->next == h p->next == NULL p == NULL p == h 2-2在双向循环链表结点p之后插入s的语句是: (3分)p->next=s; s->prior=p; p->next->prior=s ; s->next...原创 2018-09-15 10:09:09 · 17713 阅读 · 1 评论 -
两个有序链表序列的交集
7-2 两个有序链表序列的交集 (20 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:...原创 2018-09-14 22:27:15 · 1089 阅读 · 1 评论 -
两个有序链表序列的合并
7-1 两个有序链表序列的合并 (20 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例...原创 2018-09-14 21:31:59 · 291 阅读 · 0 评论 -
jmu-ds-单链表的基本运算
实现单链表的基本运算:初始化、插入、删除、求表的长度、判空、释放。(1)初始化单链表L,输出L->next的值;(2)依次采用尾插法插入元素:输入分两行数据,第一行是尾插法需要插入的字符数据的个数,第二行是具体插入的字符数据。(3)输出单链表L;(4)输出单链表L的长度;(5)判断单链表L是否为空;(6)输出单链表L的第3个元素;(7)输出元素a的位置;(8)在第4个元素位置...原创 2018-09-14 20:59:08 · 275 阅读 · 0 评论 -
6-1 带头结点的单链表就地逆置
本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数。L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点的前提下将单链表中的元素进行逆置,如原单链表元素依次为1,2,3,4,则逆置后为4,3,2,1。函数接口定义:void ListReverse_L(LinkList &L);其中 L 是一个带头结点的单...原创 2018-09-14 20:05:20 · 1884 阅读 · 0 评论