2017年福州大学考研真题-863数据结构与程序设计
数据结构精选考研试题
[注]:编写程序可选用任一种高语言,算法描述可采用类语言,必要时加上注释一、回答下列问题:[20分]1、算法的定义和性质2、为什么说数组与广义表是线性表的推广?3、什么是结构化程序设计?4、哈希方法的基本思想5、给出一不稳定排序方法名称与实例二、构造结果:[24分](1)确定x:=x+1语句在下面程序段中的频率,要求写出分析过程。
for i:=1 to n dofor j:=1 to I dofor k:=1 to j do x:=x+1(2)画出对长度为8的有序表进行折半查找的判定树,并求其在等概率时查找成功的平均查找长度。
(3)已知一棵二叉树如右图,给出对这棵二叉树进行前序、中序、后序遍历的结果序列.(4)假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为{2,3,5,7,11,4,13,15},试为这8个字母设计哈夫曼编码.(5)在地址空间为0~15的散列区中,对以下关键字序列构G造哈希表,关键字序列为(Jan,Feb,Mar, Apr,May,Jun,Jul Aug,Sep,Oct,Nov,Dec),H(x)=[i/2] ,其中i为关键字中第一字母在字母表中的序号。
要求用线性探测开放定址法处理冲突,并求出在等概率情况下查找成功的平均查找长度。
(6)构造有7个元素组成的线性表一实例,是进行快速排序时比较次数最少的初始排序。
三、写一算法,完成对这棵二叉树的左右子树的交换,设二叉树以二叉链表作存储结构。
[15分]四、编写一非递归算法,对一棵二叉排序树实现中序遍历。
[15分]五、编写程序,完成下列功能:[15分]1.读入整数序列,以整数0作为序列的结束标志(0不作为序列元素),建立一个单链表。
2.实现单链表原地逆转,即单链表中结点指针方向反转,反转操作不使用额外的链表结点,可使用临时工作单元。
例:输入序列为:1,8,4,3,0六、给出有向图G的邻接表表示。
找出其一棵最小生成树。
[11分][注]:编写程序可选用任一种高语言,算法描述可采用类语言,必要时加上注释一、回答下列问题:[20分]1、算法的定义和性质2、为什么说数组与广义表是线性表的推广?3、什么是结构化程序设计?4、哈希方法的基本思想5、给出一不稳定排序方法名称与实例二、构造结果:[24分](1)确定x:=x+1语句在下面程序段中的频率,要求写出分析过程。
【最新试题库含答案】2017考研计算机真题及答案
2017考研计算机真题及答案:篇一:2017考研计算机专业考研备考资料2017考研计算机专业考研备考资料计算机专业已成为当前考研最热门专业之一,纵观近几年报名录取情况会发现:报考人数在逐年增加,竞争压力在持续升温,而录取概率却非常小。
今天小编为同学们推荐一些优质权威的计算机专业课复习资料,以帮助同学们提升复习效果。
考试内容计算机科学与技术学科的初试科目调整后为4门:政治理论(100分)、外国语(100分)、数学一(150)和计算机学科专业基础综合(150分)。
计算机学科专业基础综合科目,主要考查考生掌握相关基础知识、基本理论和分析问题解决问题的能力。
考试实行联合命题,考试内容包括:数据结构、计算机组成原理、操作系统和计算机网络。
各阶段资料推荐第一阶段(3~7月)这一阶段为基础复习阶段,复习资料应该选择和大纲吻合的教材以及配套的习题。
数据结构可以选用严蔚敏主编、清华大学出版社出版的C语言版的《数据结构》,习题建议选用李春葆主编、清华大学出版社出版的《数据结构习题与解析》。
计算机组成原理有两个版本的教材可供选择:一个是白中英主编、科学出版社出版的《计算机组织与结构》(最新版是第4版)及配套习题;另一个是唐朔飞主编、高等教育出版社出版的《计算机组成原理》及配套习题。
操作系统建议选用:汤子瀛主编、西安电子科技大学出版社出版的《计算机操作系统》,配套习题可以选用李春葆主编、清华大学出版社出版的《操作系统习题与解析》。
计算机网络选用谢希仁主编、电子工业出版社出版的《计算机网络》(最新版是第5版)及配套习题。
在复习书本知识的基础上,同学们可以配合网络课程学习。
该阶段我们推荐考试点网络免费课程: 2017年考研计算机专业备考指南。
该节课对同学们帮助非常大,尤其是一战学子。
第二阶段(7~10月)第二阶段为强化复习、重点深入阶段,时间一般是7~10月份。
该阶段可以选用的教材有:高等教育出版社出版的的《计算机专业基础综合考试大纲解析》、复旦大学出版社出版的《计算机专业基础综合考试复习指南》。
算法与数据结构试卷--福州大学
一、选择题(10*2%=20%)1.代码段for (j=1; j<=n;j++) 的时间复杂性是B。
for (k=n; k>=1; k/=2)count++;A、O(n2)B、O(nlogn)C、O(logn)D、O(n)2.对某个无向图的邻接矩阵来说,下列叙述正确的是 A 。
A、第i行上的非零元素个数和第i列上的非零元素个数一定相等B、矩阵中的非零元素个数等于图中的边数C、第i行与第i列上的非零元素的总数等于顶点vi的度数D、矩阵中非全零行的行数等于图中的顶点数3.循环双链表中在p所指结点之后插入结点s的操作是D。
A、p->next=s; s->prior=p; p->next->prior=s; s->next=p->nextB、p->next=s; p->next->prior=s; s->prior=p; s->next=p->nextC、s->prior=p; s->next=p->next; p->next=s; p->next->prior=sD、s->prior=p; s->next=p->next; p->next->prior=s; p->next=s4.4个元素a1,a2,a3和a4依次通过一个栈,在a4进栈前,栈的状态如图,,不可能的出栈顺序是C。
A、a4,a3,a2,a1B、a3,a2,a4,a1C、a3,a1,a4,a2D、a3,a4,a2,a15.下列四种排序方法中,不稳定的方法是D。
A、插入排序B、冒泡排序C、归并排序D、选择排序6.单个结点二叉树的高度为0,所有含有15个结点的二叉树中,最小高度是D。
A、6B、5C、4D、37.在一个具有n个顶点的无向图中,要连通全部顶点至少需要B条边。
A、nB、n-1C、n/2D、n+18.快速排序法的运行效率取决于D。
福州大学2017考研各专业报录比统计
电气工程与自动化学院 电力电子与电力传动 104 电气工程与自动化学院 电工理论与新技术 15
电气工程与自动化学院 控制理论与控制工程 53 检测技术与自动化装 电气工程与自动化学院 置 电气工程与自动化学院 系统工程 1 6
2
1
0
1
全日制
1
1
0
0
全日制
中国高端辅导品牌 专注教育 20 年
电气工程与自动化学院 模式识别与智能系统 14 电气工程与自动化学院 * 电气工程 电气工程与自动化学院 * 电气工程 电气工程与自动化学院 * 控制工程 195 110 12
4 88 9 21 2 2 3 17 16 25 8 5 11 85 5 30
1 66 9 11 1 0 0 7 9 5 3 2 11 70 2 30
资源循环科学与工程 4 安全科学与工程 * 地质工程 * 环境工程 * 环境工程 政治经济学 西方经济学 23 7 33 5 10 11
中国高端辅导品牌 专注教育 20 年
经济与管理学院
世界经济 人口、资源与环境经
17
2
2
0
0
全日制
经济与管理学院 济学 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 经济与管理学院 区域经济学 财政学 金融学 产业经济学 国际贸易学 数量经济学 * 金融 * 应用统计 * 国际商务 统计学 * 工业工程 * 物流工程 管理科学与工程 ★信息管理与信息系 经济与管理学院 统 经济与管理学院 经济与管理学院 ★物流管理 ★金融工程
722 197 98 55 4 9
江西师范大学计算机信息工程学院863数据结构与程序设计历年考研真题专业课考试试题
2013年江西师范大学863数据结构与程序设计考研真题 2014年江西师范大学863数据结构与程序设计考研真题 2015年江西师范大学863数据结构与程序设计考研真题 2016年江西师范大学863数据结构与程序设计考研真题 2017年江西师范大学863数据结构与程序设计考研真题 2018年江西师范大学863数据结构与程序设计考研真题
2013年江西师范大学863数据结构 与程序设计考研真题
2014年江西师范大学863数据结构 与程序设计考研真题
2015年江西师范大学863数据结构 与程序设计考研真题
2016年江西师范大学863数据结构 程序设计考研真题2017年江西师范大学863数据结构 与程序设计考研真题
2018年江西师范大学863数据结构 与程序设计考研真题
2015年度福州大学863数据结构与程序设计模拟题3标准答案
模拟题三参考答案1.C。
【解析】考查时间复杂度。
在程序中,执行频率最高的语句为“i=i*3”。
设该基本语句一共执行了k次,根据循环结束条件,有n>2*3k≥n/3,由此可得算法的时间复杂度为O(log3n)。
2.A。
【解析】考查出入栈操作的性质。
当P1=3,表示3最先出栈,前面1、2应在栈中,此时若出栈操作,则p2应为2;此时若进栈操作(进栈1次或多次),则p2为4、5、…、n都有可能,故选A。
3. B。
【解析】考查队列的应用。
图的广度优先搜索类似于树的层序遍历(形象地想象成一个扇形,以搜索起点为中心,逐层向相连的外圈搜索),同样需要借助于队列。
前序遍历二叉树是一个递归的过程,通常可以借助于栈,将递归算法转换为非递归算法。
图的深度优先搜索类似于树的前序遍历,也是一个递归的过程,通常也可以借助栈来实现。
4.C。
【解析】考查平衡二叉树的性质。
在平衡二叉树的结点最少情况下,递推公式为N0=0,N1=1,N2=2,N h=1+N h-1+N h-2(h为平衡二叉树高度,N h为构造此高度的平衡二叉树所需最少结点数)。
通过递推公式可得,构造5层平衡二叉树至少需12个结点,构造6层至少需要20个。
5.C。
【解析】考查二叉排序树的构造过程。
画出三个选项ABC构造的二叉排序树的草图即可知道答案,C和AB构造的树形不同;再画出最后一个选项D构造的二叉排序树即可验证答案,D和AB两项的相同。
6.B。
【解析】考查几种特殊二叉树的特点。
二叉判定树描述了折半查找的过程,肯定是高度平衡的,因此不可能是A。
对于B,此图中所有结点的关键值均大于左子树中结点关键值,且均小于右子树中所有结点的关键值,B 符合。
对于C,此图中存在不平衡子树,错误。
对于D,此图不符合小根堆或大根堆的定义。
7.C。
【解析】考查哈夫曼树的构造。
将16个权值相等(设为m)的字母看成16个独立的结点;从中任选两个结点构成一棵新的二叉树(共8棵),新树的权值为2m;再从8棵树中任选2棵构成新的二叉树(共4棵),新树的权值为4m,……,如此继续,刚好能构成一棵满二叉树。
计算机考研专硕院校信息汇总
计算机考研专硕院校信息汇总1.中山大学(985)广东省广州软件工程:867专业基础(数据结构)620)软件学院院系:100 本专:100 推免:60 专业:40621)(1)101思想政治理论(2)204英语二(3)302数学二(4)867专业基础(数据结构)复试专业课:F62 01计算机综合考试①《离散数学》,耿素云、屈婉玲,高等教育出版社,1998。
②《C程序设计》第二版,谭浩强编,清华大学出版社,1999。
计算机技术:(408)综合350)信息科学与技术学院院系:287 专硕:143 推免:100 一般:43 (470)中山大学-卡内基梅隆大学联合工程学院(922)数据结构与计算机原理本专:40分数线:300;270;2702.华南理工大学(985)广东省广州计算机技术:(831)计算机专业综合(数据结构、操作系统)008)计算机科学与工程学院院系:133 专业招生人数:55① 101思想政治理论② 204英语1③302数学1④831计算机专业综合(数据结构、操作系统) 复试笔试科目:902上机能力测试:数据库复试科目参考书:《数据库系统概论》(第三版)王能斌著,,电子工业出版社;《数据库系统概念》(第四版)中文版,杨冬青、唐世渭等编译,机械工业出版社;《数据库系统教程》王能斌著,电子工业出版社软件工程:(408)综合(023)软件学院院系:74推免:373.暨南大学(211)广东省软件工程和计算机技术:(830)数据结构(010)信息科学技术学院院系:110 推免:20 软件工程专业:10①101思想政治理论②204英语二③302数学二④830数据结构830数据结构1.严蔚敏、吴伟民, 数据结构(C语言版),清华大学出版社出版2.严蔚敏, 吴伟民,《数据结构习题解析》,清华大学出版社出版复试科目:C语言程序设计加试科目:①离散数学②计算机基础!!华南师范大学广东省软件工程:(918)计算机综合考试(操作系统、程序设计)(019)计算机学院院系:62 推免:164.华东师范大学(985)上海市085211 数据结构(含c语言)计算机技术1.上机考试:主要考查学生运用计算机编程解决问题的能力,上机语言为C或C++。
历年卷------算法与数据结构(福州大学) - 副本
14、平衡二叉树中结点的平衡因子不可能是( ) 。 A、0 B、-1 C、1 D、2 15、下列有关二叉搜索树上的运算说法正确的是( ) 。 A、 从根结点起在二叉搜索树上查找某元素,若当前结点存放的元素比被查找元素 大,则在当前结点的右子树中继续查找 B、在二叉搜索树中删除一个元素时,若被删元素所在结点存在左右子树,可用其 左子树中最右下结点中的元素替代被删元素,并将该最右下结点的左子树挂接 为其父结点的右子树。调整结构后的二叉树仍为一棵二叉搜索树。 C、从根结点起在二叉搜索树中查找某元素 y 的直接前驱元素,若当前结点存放的 元素 x 小于 y,则以 x 作为 y 直接前驱的候选者,并继续在当前结点的左子树 中进行查找 D、从根结点起在二叉搜索树中查找某元素 y 的直接后继元素,若当前结点存放的 元素 x 等于 y,则在当前结点的左子树中继续查找
得分 评卷人
1、以下函数的时间复杂度为( ) 。 int Rsum ( int a[], int n ) { if ( n>0 ) return Rsum ( a, n-1 ) + a[n-1]; return 0; } A、O(1) B、O(n2) C、O(n) D、O(nlog2n) 2、下列不属于顺序存储结构特点的是( ) 。 A、可对元素进行随机访问 B、非表尾的插入和删除操作需要移动表中大量元素 C、相邻元素在内存中的物理位置也是相邻的 D、采用该存储结构的线性表空间可动态扩充 3、设在带哨兵结点的单链表中,链结点的指针域为 next,在指针 p 所指结点后插入由 指针 y 所指的新结点,应使用的语句为( ) 。 A、p->next=y->next; y->next=p; B、y->next=p->next; p->next=y; C、p->next=y->next; p->next=y; D、y->next=p->next; y->next=p;
2017年福州大学837经济学综合考研真题(回忆版)
2017年福州大学837经济学综合考研真题(回忆版)聚英厦大考研网整理了2017年福州大学837经济学综合考研真题(回忆版),仅供大家参考,欢迎广大考生纠正补充,希望能对2018年考研的同学们有所帮助。
一、判断题(10*2)二、名词解释(5*5)1、规模经济2、生产者剩余3、流动性陷阱4、索洛余量5、资本有机构成三、简答及作图题(3*10)1、我国对外开放的理论依据和客观依据。
2、垄断或不完全竞争为什么会造成低效率?3、画图说明总支出曲线和总需求曲线的区别。
四、计算题(2*15)(ps.今年只考了两题,但都很简单,只要课本习题都会做考试一般没问题)1、已知某完全竞争市场的需求函数为D=6300-400P,短期市场供给函数为SS=3000+150P;单个企业在LAC曲线最低点的价格为6,产量为50;单个企业的成本规模不变。
(1)求市场的短期均衡价格和均衡产量;(2)判断(1)中的市场是否同时处于长期均衡,求企业内的厂商数量;(3)如果市场的需求函数变为D`=8000-400P,短期供给函数为S`=4700-400P,求市场的短期均衡价格和均衡产量;(4)判断(3)中的市场是否同时处于长期均衡,并求行业内的厂商数量;(5)判断该行业属于什么类型;(6)需要新加入多少企业,才能提供(1)到(3)所增加的行业总产量?2、假设某经济的消费函数为c=100+0.8yd,投资i=50,政府购买性支出g=200,政府转移支付tr=62.5,税率为0.25。
税收(单位均为10亿美元)(1)求均衡收入。
(2)试求投资乘数、政府支出乘数、税收乘数、转移支付乘数、平衡预算乘数。
(3)假定该社会达到充分就业所需要的国民收入为1 200,试问:(1)增加政府购买;(2)减少税收;(3)以同一数额增加政府购买和税收(以便预算平衡)实现充分就业,各需多少数额?(4)如果将题干中的比例税换为定量税t=250,上述结果有什么不同?五、论述题(50分)(ps.今年论述整体不那么主流,尤其是考的公共选择理论,所以大家复习的时候一定要全面,尤其是市场失灵和经济增长这两章,几乎每年都必出论述题)1、某些商品的政府限价会造成供不应求状态,有些学者认为取消政府就可以解决这个问题,请用需求价格和均衡价格理论说这种做法的可行性,并用我国的商品举一个例子说明。
福州大学863数据结构与程序设计_模拟题1答案
模拟题一参考答案一、单项选择题1.B。
考查栈和队列的特点及应用。
C和D直接排除,缓冲区的特点需要先进先出,若用栈,先进入缓冲区的数据则要排队到最后才能打印,不符题意,故选B。
2.C。
考查栈的最大递归深度。
时刻注意栈的特点是先进后出。
出入栈的详细过程见表栈内的最大深度为3,故栈S的容量至少是3。
3.D。
考查二叉树的特殊遍历。
分析遍历后的结点序列,可以看出根结点是在中间被访问的,而右子树结点在左子树之前,得遍历的方法是RNL。
本题考查的遍历方法并不是二叉树的三种基本遍历方法,对于考生而言,重要的是要掌握遍历的思想。
4.B。
考查平衡二叉树的定义。
根据平衡二叉树的定义有,任意结点的左、右子树高度差的绝对值不超过1。
而其余三个答案均可以找到不符合的结点。
5.C。
考查完全二叉树的特点。
完全二叉树比满二叉树只是在最下面一层的右边缺少了部分叶结点,而最后一层之上是个满二叉树,并且只有最后两层有叶结点。
第6层有叶结点则完全二叉树的高度可能为6或7,显然树高为7时结点更多。
若第6层上有8个叶结点,则前六层为满二叉树,而第7层缺失了8×2=16个叶结点,故完全二叉树的结点个数最多为27-1-16=111个结点。
6.B。
考查森林和二叉树的转换。
森林与二叉树的转换规则为“左孩子右兄弟”。
在最后生成的二叉树中,父子关系在对应森林关系中可能是兄弟关系或原本就是父子关系。
情形Ⅰ:若结点v是结点u的第二个孩子结点,在转换时,结点v就变成结点u第一个孩子的右孩子,符合要求。
情形Ⅱ:结点u和v是兄弟结点的关系,但二者之中还有一个兄弟结点k,则转换后,结点v就变为结点k的右孩子,而结点k则是结点u的右孩子,符合要求。
情形Ⅲ:结点v的父结点要么是原先的父结点或兄弟结点。
若结点u的父结点与v的父结点是兄弟关系,则转换之后,不可能出现结点u是结点v的父结点的父结点。
7.A。
考查无向连通图的特性。
每条边都连接了两个结点,则在计算顶点的度之和时,这条边都被计算了两次,故所有顶点的度之和为边数的两倍,显然必为偶数。
福师《数据结构概论》复习题及参考答案
福师1103批次《数据结构概论》复习题1一、选择:(每题2分,共30分)1、一个栈的输入序列为 1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。
A) 2 3 4 1 5 B) 5 4 1 3 2 C) 2 3 1 4 5 D) 1 5 4 3 22、向一个长度为n的向量的第i (1<=i<=n+1)个元素之前插入一个元素时,需要后移 ( D )个元素。
A. nB. n-iC. n+1D. n-i+13、不带表头的单链表,头指针为head ,判断其是否为空的条件是( D )。
A. head==nilB. head->next==nilC. head==headD. head->next==head4、下列排序算法中,其中( D )是稳定的。
A) 堆排序,冒泡排序 B) 快速排序,堆排序C) 直接选择排序,希尔排序 D) 归并排序,冒泡排序5、一个栈的输入序列是a,b,c,d,e ,则不可能输出是( A )。
A. ecdabB. cdebaC. decbaD. abcde6、一个二叉树中,度为2的结点有6个,则叶子结点为( C )A.5 B.6 C.7 D.87、深度为6的树,需要多少个( B )结点才为满二叉树A.30 B.63 C.64 D.318、广义表C=(A,B,(a,b))的长度为( A )A.3 B.4 C.5 D.29、栈为空的标志为( A )A.栈底=栈顶 B. 栈底-1=栈顶 C.栈底=栈顶+1 D.栈底=栈顶-1 10、4个结点的平衡二叉树有多少种( B )A.3 B.4 C.5 D.211、先进先出的是( B )A.栈 B.队列 C.双向队列 D.循环链表12、开放定址法中,增量序列的取法不包括( D )A.线性探测再散列B.委随机探测再散列C.二次探测再散列D.随机探测再散列13、在最好和最坏情况下的时间复杂度均为O(n*logn)且稳定的排序方法是:( C )A.快速排序B.堆排序C.归并排序D.基数排序14、设高度为h的二叉树中只有度为0,2的结点,则该二叉树至少有( B )个结点。
2016年度福州大学863数据结构与程序设计模拟题
2016年福州大学863数据结构与程序设计模拟题一一.单项选择题:每小题2 分(共60分)1.为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是()A.栈B.队列C.树D.图2.设栈S 和队列Q 的初始状态均为空,元素a,b,c,d,e,f,g 依次进入栈S。
若每个元素出栈后立即进入队列Q,且7 个元素出队的顺序是b,d,c,f,e,a,g,则栈S 的容量至少是()A.1 B.2 C.3 D.43.给定二叉树如下图所示,设N 代表二叉树的根,L 代表根结点的左子树,R 代表根结点的右子树。
若遍历后的结点序列是3,1,7,5,6,2,4,则其遍历方式是()A.LRN B.NRL C.RLN D.RNL4.下列二叉排序树中,满足平衡二叉树定义的是()A B C D5.已知一棵完全二叉树的第6 层(设根为第1 层)有8 个叶结点,则该完全二叉树的结点个数最多是()A.39 B.52 C.111 D.119 6.将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是()Ⅰ.父子关系Ⅱ.兄弟关系Ⅲ.u 的父结点与v 的父结点是兄弟关系A.只有ⅡB.Ⅰ和ⅡC.Ⅰ和ⅢD.Ⅰ、Ⅱ和Ⅲ7.下列关于无向连通图特性的叙述中,正确的是( )Ⅰ.所有顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1 A.只有ⅠB.只有ⅡC.Ⅰ和ⅡD.Ⅰ和Ⅲ8.下列叙述中,不.符合m 阶B 树定义要求的是()A.根结点最多有m 棵子树B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列D.叶结点之间通过指针链接9.若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是()A.冒泡排序B.插入排序C.选择排序D.二路归并排序10. 若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不.可能得到的出栈序列是()A.d c e b f a B.c b d a e f C.b c a e f d D.a f e d c b11.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。
863 -《数据结构与程序设计》-初试科目考试大纲模板
第一章概论
1.数据结构的基本概念与术语
2.算法与算法分析
第二章线性表及其顺序存储
1.线性表
2.顺序表及其应用
3.栈的概念及其应用
4.队列的概念及其应用
第三章线性表及其链式存储
1.链式存储
2.单链表
3.带头结点的单链表及其应用
4.循环单链表与双链表
5.链式栈与链式队列
第四章字符串、数据与特殊矩阵
3、顺序表的快速排序为何采用由外向内来回比较法,是否可以从同一个方向扫描?采用带头结点的单链表存储的线性表是否可以做快速排序?对初始序列(50,20,79,24,49,84,3,99,12)以50作为“枢轴”进行第一次划分后的结果是什么?
4、给定无向网如下图2所示,请采用prim算法用图示描述求解该图的最小生成树的过程。(初始入选点为A,每选取一条边画一个图)
s=p->next;
while (s!=NULL)
{while (s&&s->data!=p->data) /*从结点p后找与其相同的结点*/
{
s=s->next;
}
if (s!=NULL) /*找到了与p相同的结点s*/
{ pre->next=s->next;
}
}
p=p->next;
}
return head;
(A)84,79,56,38,40,46(B)79,46,56,38,40,80
(C)84,79,56,46,40,38(D)84,56,79,40,46,38
5、设二叉排序树中关键字由1至1000的整数构成,现要检索关键字为363的结点,下述关键字序列哪一个不可能是二叉排序树上搜索到的序列()。
2022年福州大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年福州大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、下列排序算法中,占用辅助空间最多的是()。
A.归并排序B.快速排序C.希尔排序D.堆排序2、哈希文件使用哈希函数将记录的关键字值计算转化为记录的存放地址,因为哈希函数是一对一的关系,则选择好的()方法是哈希文件的关键。
A.哈希函数B.除余法中的质数C.冲突处理D.哈希函数和冲突处理3、若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。
A.单链表B.双向链表C.单循环链表D.顺序表4、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。
A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front5、在用邻接表表示图时,拓扑排序算法时间复杂度为()。
A.O(n)B.O(n+e)C.O(n*n)D.O(n*n*n)6、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别()。
A.i=1,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=27、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod MD.队空:end1==(end2+1)mod M;队满:end2==(end1+1) mod (M-1)8、下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序()。
863数据结构
西安理工大学计算机科学与工程学院硕士研究生入学考试课程《数据结构》考试大纲科目代码:863科目名称:数据结构第一部分考试说明一、考试性质数据结构是计算机各专业的专业基础课。
考核目标是测试计算机科学与技术及相近各专业的本科毕业生对于该课程的知识掌握程度,以保证被录取者具有本学科基本的专业理论基础及程序设计能力,以利于计算机科学与技术及软件工程学科的导师择优选拔硕士研究生。
考试对象为参加全国硕士研究生入学考试的本科毕业生和具有同等学力的在职人员。
二、考试范围各种基本类型的数据结构的概念、特征、操作、存储表示和基本应用;各种基本查找表的概念、特征及其查找方法;基本的内排序方法及其应用;用C语言(或C++)进行算法描述,并对算法进行分析。
三、评价目标考查基本概念、基本知识、基本方法的基础上,注重考查学生运用基本知识来分析和解决实际问题的能力,注重考查算法和程序设计的能力。
具体要求见本考试大纲第二部分的“考查要点”。
四、考试形式与试卷结构1.答卷方式:闭卷,笔试。
2.答题时间:180 分钟。
3.考查内容及其考查比例基本概念、基本知识、基本方法约占50%~60%;综合应用、算法和程序设计与算法分析约占50%~40%。
4.试卷结构与考试题型试卷共150分,基本的考试题型有:(1)单项选择题和多项选择题(基本概念);(2)填空题(基本知识、基本方法);(3)简答题(概念理解);(4)应用题(基本方法的应用);(5)算法和程序设计题;五、教材和参考书教材: 《数据结构》(C语言版),严蔚敏、吴伟民编著,清华大学出版社,2009.6第二部分考查要点1.数据结构基本概念和术语1)了解数据元素、数据结构、抽象数据类型、存储结构等概念;了解算法概念及算法设计的基本要求;2)掌握算法分析方法、语句的频度和估算时间复杂度、空间复杂度分析方法。
2.线性表1)理解线性表的定义和基本操作;线性表的抽象数据类型定义;2)掌握线性表的顺序存储结构及应用方法;3)掌握线性表的链式存储结构(单链表,双链表,循环链表)。
2017年全国硕士研究生入学统一考试计算机科学与技术学科
(通过括号反映操作符的计算次序)并输出。例如,当下列两棵表达式树作为算法的输人时:
输出的等价中缀表达式分别为(a+b)*(c*(-d))和(a*b)+(-(c-d))。二叉树结点定义如下:
typedef struct node
{ char data[10];
//存储操作数或操作符
struct node *left, *right;
while(sum < n) sum += ++i;
return i;
{
A、O(log n)
B、O(n1/2)
C、O(n)
D、O(nlog n)
2、下列关于栈的叙述中,错误的是()
Ⅰ、采用非递归方式重写递归程序时必须使用栈
Ⅱ、函数调用时,系统要用栈保存必要的信息
Ⅲ、只要确定了入桟次序,即可确定出栈次序
Ⅳ、栈是一种受限的线性表,允许在其两端进行操作
A、仅 I
B、仅 I、Ⅱ、Ⅲ
C、仅 I、Ⅲ、Ⅳ
D、仅Ⅱ、Ⅲ、Ⅳ
3、适用于压缩存储稀疏矩阵的两种存储结构是()
A、三元组表和十字链表 B、三元组表和邻接矩阵
C、十字链表和二叉链表 D、邻接矩阵和十字链表
4、要使一棵非空二叉树的先序序列与中序序列相同,其所有非叶结点须满足的条件是
D、仅Ⅳ、Ⅴ
12、假定计算机 M1 和 M2 具有相同的指令集体系结构(I SA),主频分别为 1.5GHz 和
1.2GHz。在 M1 和 M2 上运行某基准程序 P,平均 CPI 分别为 2 和 1,则程序 P 在 M1 和 M2
上运行时间的比值是()
A、0.4
B、0.625
C、1.6
D、2.5
新版福州大学软件工程考研经验考研参考书考研真题(附真题)
新版福州大学软件工程考研经验考研参考书考研真题(附真题)考研,说不痛苦都是假的,但其实最多的是辛苦。
下定决心准备考研是从大三结束的那个暑假开始的,所以想说:只要努力开始,一切都来得及。
在这场考试中,我确实也发挥出了最佳实力,多少也算是逆袭,成功上岸。
对于开始的过程来说谁也做不到完美,所以只能在有限时间内,争取做最有效的提升,更要关注自己不擅长的地方。
避免在不擅长的地方出现更大的问题。
话说回来,对于所有科目来说,付出与分数是成正比的,所以千万不要抱着侥幸心理去学习!一定要掌握好基础,循序渐进的努力用功才行!对于备考策略,之前从很多学长学姐经验贴里学到的再加上自己这几个月的经验,所以跟大家分享一下我的经验。
我不是什么大神级别的人,也不能够帮助自认为是学渣的孩子复习没几天就能逆袭成学神,但是我的这些经验对于跟我一样,资质普通的考生来讲应该还是有一些借鉴意义的。
首先,我不鼓励大家去经历头悬梁锥刺股的那种学习的刻苦,都什么年代了,提高学习效率的方法多的是,找到适合自己的学习方法远比头悬梁锥刺股来的让人开心。
下面就讲讲我的备考经验吧,也希望大家早日找到适合自己的学习节奏和学习方法。
篇幅总体会比较长,只因,考研实在是一项大工程,真不是一两句话可描述完的。
所以希望大家耐心看完,并且会有所帮助。
文章结尾处附上我自己备考阶段整理的学习资料,大家可以自取。
福州大学软件工程初试科目:(101)思想政治理论(201)英语一(301)数学一(863)数据结构与程序设计(863)数据结构与程序设计参考书《数据结构(C语言描述)》(修订版)王晓东编著,电子工业出版社,2011年;《C++程序设计教程(第二版)》,钱能编,清华大学出版社,2005年关于英语无非几大模块:阅读,完型,新题型,翻译,作文。
首先最最最重要的就是阅读,如果你把阅读搞“好”了,其他的都不成问题而“好”的定义,不是简简单单的把题做对,“好”的定义有很多方面,下面的内容我会说。
福州大学计算机科学导论历年卷考点
计算机科学与技术学科1、我国研制成功的“银河”计算机是巨型机2、采用晶体管作为电子元器件的计算机属于第二代计算机3、计算机中所有信息都是以二进制的形式存在计算机内部的4、第二代计算机的逻辑元件和主存储器都采用了晶体管电路5、通常划分计算机发展时代是以所用的电子元器件为标准的6、世界上第一台电子计算机ENIAC诞生于1946年2月14日7、第三代计算机采用的基本电子元件是中小规模集成电路8、计算机科学与技术学科的根本问题是什么能被有效的自动化9、课程体系结构:计算机导论、程序设计基础、离散结构、数据结构与算法、计算机组织与体系结构、微型机结构与接口、操作系统、数据库系统原理、编译原理、软件工程、计算机图形学、计算机网络、人工智能、数字逻辑、计算机组成基础、计算机体系结构10、艾伦图灵最早提出计算机应当具有的功能和局限性11、在计算机科学与技术的研究中,程序设计方法学属于计算机理论这一分支方向12、最早的平板电脑出现于20世纪60年代13、计算机科学研究的三个过程:抽象过程、设计过程、理论总结过程14、计算机的特点是:运算速度快、运算精度高、具有记忆能力、具有逻辑判断能力和存储程序15、在计算机科学研究中,具体问题的抽象描述和对象描述对具体问题的表示被称作绑定,而重用是指在新的环境下,系统中的各类实体、软件、概念等再次被使用16、算法是由一系列规则组成的过程,这些规则确定了一个操作的顺序,以便能在有限步骤内得到特定问题的解17、信息系统的主要目的是支持管理和决策18、数学归纳法是一种数学证明方法,通常被用于证明某个给定命题在整个(或者局部)自然数范围内成立。
除了自然数以外,广义上的数学归纳法也可以用于证明一般良基结构,例如:集合论中的树。
这种广义的数学归纳法应用于数学逻辑和计算机科学领域,称作结构归纳法19、在数学证明中,首先假设要证明的命题不成立,而后推出矛盾的证明方法称作反证法,而数学归纳法常用于证明与自然数有关的命题的正确性20、算法的优劣可以从时间复杂性、空间复杂性以及易理解性上加以评价21、计算机工作时,有两种信息在流动:数据信息、指令控制信息22、计算机学科关注的三个过程是指:抽象过程、理论总结过程和设计过程计算机的基础知识1、在计算机内部,一切信息的存取、处理和传递都是以二进制的形式进行的2、一个汉字字形采用(24*24)点阵时,其字形码要占72B4、ASCII码就是美国标准信息交换码5、将一个二进制数向左位移n位就等于该数乘以2的n次方,当乘法运算中的某个数符合这个特点的时候,可以用位移运算代替乘法运算,从而提高效率6、不是所有十进制小数都可以用二进制表示7、常用的线性结构有:线性表,栈,队列,双队列,数组,串8、在计算机中,二进制乘法实质上可以用移位与相加操作来实现9、利用补码的表示法可以方便地将减法运算转换成加法运算10、计算机不能直接识别汇编语言程序11、正数的原码=反码=补码12、使用高级程序设计语言写的源程序不可以在计算机上直接运行12、栈是一种常用的线性表数据结构,它只在表的一端进行插入和删除操作13、引入补码之后,减法运算可以用加法来实现,且数的符号位也可以当作数值一样参与运算14、在计算机中,通常采用ASCII、EBCDIC和BCD三种二进制编码体系来表示字符15、在计算机内部,当一个数的字长一定时,分配给阶码的位数越多,则表示数的范围越大,从而降低了表示数的精度16、海明码具有检查错误和纠错的功能17、线性表是具有n个数据元素的有限序列18、队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
using namespace std; fun ( ); fun ( ); void main ( ) {
fun ( ); fun ( ); } void fun ( ) { static int a = l; int i = 5; a++; i++; cout<<"i="<<i<<",a="<<a<<endl; }
int main ( ) { A *a = new B(15);
delete a; return 0; }
11.写出以下程序的运行结果。 #include <iostream> using namespace std; class A {
public: void f ( ) {cout<<"Call A's function f ( )"<<endl;}
} }
9.写出以下程序的运行结果。 #include <iostream.h> #include <math.h> using namespace std; class Point {
public: Point (int xx =0, int yy = 0) { X = xx; Y = yy; cout<<"构造函数被调用"<<endl; } Point(Point &p); int GetX ( ) {return X;} int GetY ( ) {return Y;}
cout<<w; cout<<endl; } } void main ( ) { print(4); }
3.写出以下程序的运行结果 #include <iostream> using namespace std; void main ( ) {
int j, k; for (j=5; j>0; j--) {
12.写出所有 ABC 为入栈序列的可能的出栈序列。
13.给定数列 5、3、6、8、2、9、7、4。根据给定数列写出插入排序前四趟的过程。
14.将 23、15、27、31、8、5、18 初始化为极小化堆并执行两次 DeleteMin 操作。
15.用 kruskal 算法对下图构造最小支撑树。
16.设散列函数 H(k)=kmod7,散列表的地址空间为 0-6,对关键字序列{32, 13, 49, 18, 22, 38, 21}。 (1)按链地址法处理冲突的办法构造哈希表(开散列)。 (2)按照线性探测法构造哈希表(闭散列)。
for (k=j; k>0; k--) cout<<"*";
cout<<endl; } }
4.写出以下程序的运行结果。 #include <iostream> using namespace std; void main ( ) {
int Array[3]; Array[0] = 10; Array[l] = 20; Array[2] = 30; int *pArray; pArray = &Array[0]; cout<<"pArray points to the value."<<endl; cout<<*pArray<<endl; cout<<*(pArray+1)<<endl; }
}; class B: pubilc A {
public: B(int i) {cout << "B::B ( ) called.\n"; buf = new char[i];} virtual ~B ( ) {delete []buf; cout<<"B::B ( ) called.\n";}
private: char *buf;
8.写出以下程序的运行结果。 #include <iostream>
using namespace std; void main ( ) {
int b[2][4] = {12, 36, 62, 14, 56, 98, 74, 63}; int (*p)[4] = b; int i, j; for (i=0; i<2; i++) {
10.写出以下程序的运行结果。 #include <iostream> using namespace std; class A {
public: A ( ) {cout << "A::A ( ) called.\n";} virtual ~A ( ) {cout << "A::A ( ) called.\n";}
public: void g ( ) {cout<<"Call C's function g ( )"<<endl;}
} int main ( ) {
C cc; cc.B::f ( ); cc.B::g ( ); cc.g ( ); return 0; }
四、算法计算题。
11.顺序表用数组实现,在实现插入一个数平均需要移动多少个数?实现删除一个数平均需要移动多少个 数?
} class B {
public: void f ( ) {cout<<"Call B's function f ( )"<<endl;} void g ( ) {cout<<"Call B's function g ( )"<<endl;};
} class C:public A, public B {
17.用 3、5、6、2、4、9 构造二叉搜索树。写出其是 AVL 树时的情况。
五、程序设计题。
18.给定一个十进制位 N,试求其二进制中 1 的个数,算法满足下列复杂度。 (1)时间复杂度为 O(nlogn)。 (2)复杂度只与二进制数中 1 的个数有关。 (3)时间复杂度为 O(1)。
19.快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部 分的所有数据都要小,然后在按此方法对这两部分数据 分别进行快速排序,整个排序过程可以递归进行, 以此达到整个数据变成有序序 列。试写出一个快速排序改进算法,使得在最坏情况下,快速排序的时间 复杂度为 O(nlogn)。
for (j=0; j<4; j++) cout<<*(*(p+i)+j)<<" ";
cout<<endl; } for (i=0; i<20; i++)
for (i=0; i<2; i++) { for (j=3; j>=0; j--) cout<<p[i][j]<<" "; cout<<endl;
福州大学
2017 年招收攻读硕士学位研究生入学考试
863 数据结构与程序设计
一、程序阅读题(每小题 4 分,共计 48 分)。
1.写出以下程序的运行结果。 #include <iostream> using namespace std; void main ( ) {
int b[3][5] = {11, 2, 13, 14, 15, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35}; int (*p)[5]; p = b; for (int j=0; j<5; j++)
7.写出以下程序的运行结果。 #include <iostream> using namespace std; class Point {
public: Point (int xx=0, int yy = 0) {X = xx; Y = yy; countP++;} int GetX ( ) {return X;} int GetY ( ) {return Y;} void GetC ( ) {cout<<"Object id="<<countP<<endl;}
private: int X, Y;
} Point::Point(Point &p) {
X = p.X; Y = p.Y; cout<<"Point 拷贝构造函数调用"<< {
public: Distance (Point xp1, Point xp2); double GetDis ( ) {return dist;}
private: int X, Y; static int countP;
}; int Point::countP = 0; void main ( ) {
Point A(4, 5); cout<<"Point A,"<<A.GetX ( )<<","<<A.GetY ( ); A.GetC ( ); cout<<"Point B,"<<B.GetX ( )<<","<<B.GetY ( ); B.GetC ( ); }
cout<<*(*p+j)<<","; cout<<endl; }