特别说明
本书根据历年考研大纲要求并结合历年考研真题对该题型进行了整理编写,涵盖了这一考研科目该题型常考试题及重点试题并给出了参考答案,针对性强,考研复习首选资料。
版权声明
青岛掌心博阅电子书依法对本书享有专有著作权,同时我们尊重知识产权,对本电子书部分内容参考和引用的市面上已出版或发行图书及来自互联网等资料的文字、图片、表格数据等资料,均要求注明作者和来源。但由于各种原因,如资料引用时未能联系上作者或者无法确认内容来源等,因而有部分未注明作者或来源,在此对原作者或权利人表示感谢。若使用过程中对本书有任何异议请直接,我们会在第一时间与您沟通处理。
因编撰此电子书属于首次,加之作者水平和时间所限,书中错漏之处在所难免,恳切希望广大考生读者批评指正。
重要提示
本书由本机构编写组多位高分在读研究生按照考试大纲、真题、指定参考书等公开信息潜心整理编写,仅供考研复习参考,与目标学校及研究生院官方无关,如有侵权请立即处理。一、2021年哈尔滨师范大学计算机科学与信息工程学院922程序设计与数据结构考研核心题库之数据结构算法设计题精编
1.已知非空线性链表第一个结点由list指出,请写一算法,交换p所指的结点与其下一个结点在链表中的位置(设P指向的不是链表最后那个结点)。
【答案】算法设计如下:
2.实现利用队列将栈中元素逆置并说明算法。
【答案】先将栈中的元素移到队列中(即从栈中逐一出栈栈顶元素并入队列中),再将队列中元素移回栈中(即从队头逐一出队元素并入栈中),这样对栈中的内容就进行了逆转。算法如下:
3.输入一个字符串,内有数字和非数字字符,如:,将其中连续的数字作为一个整体,依次存放到一数组a中,例如123放入,放入编程统计其共有多少个整数,并输出这些数。
【答案】核心是如何将数从字符串中分离出来。从左到右扫描字符串,初次碰到数字字符时,作为一个整数的开始。然后进行拼数,即将连续出现的数字字符拼成一个整数,直到碰到非数字
字符为止,一个整数拼完,存入数组,再准备下一整数,如此下去,直至整个字符串扫描到结束。核心语句段如下:
4.己知递增有序的单链表A、B分别存储了一个集合,请设计算法以求出两个集合A和B的差集A-B(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。
【答案】算法描述如下:
5.设计一个函数修改起泡排序过程以实现双向起泡排序,即在排序过程中以交替的正、反两个方向进行扫视。若第1趟把关键字最大的记录放在最末尾,则第2趟把关键字最小的记录放到最前端,如此反复行之。
【答案】实现双向排序的函数如下:
二叉树中序遍历非递归算法
6.设一棵具有n个结点的完全二叉树采用顺序存储结构,保存在一维数组A中。试设计一个递归算法,复制该完全二叉树,得到一棵新的采用普通二叉链表存储的二叉树。二叉链表的每个结点有3个域,lchild、rchild和element。算法返回所构造的新二叉树的根结点地址。
【答案】假设n个结点分别存储在]中,复制二叉树时,只需要在遍历的过程中,复制相应的结点和指针即可。算法描述如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论