2010湖北省数据结构考试深入
(完整word版)数据结构试题集(包含答案完整版)
第一章概论一、选择题1、研究数据结构就是研究(D )。
A. 数据的逻辑结构B。
数据的存储结构C. 数据的逻辑结构和存储结构D。
数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。
A。
空间复杂度和时间复杂度 B. 正确性和简单性C。
可读性和文档性D。
数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。
A。
图B。
树C。
广义表D。
栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。
A. 可执行性、可移植性和可扩充性B。
可执行性、有穷性和确定性C。
确定性、有穷性和稳定性 D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。
for(i=0;i<m;i++)for(j=0;j〈n;j++)a[i][j]=i*j;A. O(m2) B。
O(n2) C。
O(m*n) D. O(m+n)6、算法是(D )。
A。
计算机程序 B. 解决问题的计算方法C。
排序算法 D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。
A。
O(n) B. O(nlog2n) C。
O(n2) D. O (log2n)8、下面程序段的时间复杂度为( C ).i=1;while(i<=n)i=i*3;A. O(n)B。
O(3n) C。
O(log3n) D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。
A. 结构B。
关系C。
运算D。
算法10、下面程序段的时间复杂度是(A )。
i=s=0;while(s<n){i++;s+=i;}A. O(n) B。
O(n2)C。
O(log2n)D。
O(n3)11、抽象数据类型的三个组成部分分别为(A)。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。
2010湖北省数据结构与算法考试重点和考试技巧
28、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
29、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
42、队列的操作的原则是( A )。
A)先进先出 B) 后进先出
C) 只能进行插入 D) 只能进行删除
43、在数据结构中,从逻辑上可以把数据结构分为( C )。
6、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
D)内部结构和外部结构
7、采用链结构存储线性表时,其地址( B )。
C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;
36、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
A)loc(A1)+i*c B)loc(A1)+(i-1)*c
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
22、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
A)3 B)4 C)5 D)1
C)部分地址必须是连续 D)必须是不连续的
2010湖北省分析数据库的考试题目深入
1、设有一个数组中存放了一个无序的关键序列K1、K2、…、Kn。
现要求将Kn放在将元素排序后的正确位置上,试编写实现该功能的算法,要求比较关键字的次数不超过n。
51. 借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。
设此组记录存放于数组r[l..h]中。
若查找成功,则输出该记录在r数组中的位置及其值,否则显示“not find”信息。
请编写出算法并简要说明算法思想。
2、#define maxsize 栈空间容量void InOutS(int s[maxsize])//s是元素为整数的栈,本算法进行入栈和退栈操作。
{int top=0; //top为栈顶指针,定义top=0时为栈空。
for(i=1; i<=n; i++) //n个整数序列作处理。
{scanf(“%d”,&x); //从键盘读入整数序列。
if(x!=-1) // 读入的整数不等于-1时入栈。
if(top==maxsize-1){printf(“栈满\n”);exit(0);}else s[++top]=x; //x入栈。
else //读入的整数等于-1时退栈。
{if(top==0){printf(“栈空\n”);exit(0);}else printf(“出栈元素是%d\n”,s[top--]);}}}//算法结3、设一棵二叉树的结点结构为 (LLINK,INFO,RLINK),ROOT为指向该二叉树根结点的指针,p 和q分别为指向该二叉树中任意两个结点的指针,试编写一算法ANCESTOR(ROOT,p,q,r),该算法找到p和q的最近共同祖先结点r。
4、若第n件物品能放入背包,则问题变为能否再从n-1件物品中选出若干件放入背包(这时背包可放入物品的重量变为s-w[n])。
若第n件物品不能放入背包,则考虑从n-1件物品选若干件放入背包(这时背包可放入物品仍为s)。
若最终s=0,则有一解;否则,若s<0或虽然s>0但物品数n<1,则无解。
2013年湖北省数据结构试题集(10套题并附带答案)考资料
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
12、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
A.数据元素具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C.每个数据元素都一样
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
5、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
C.p->next ==head D.p == head
6、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
20、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
14、链表不具备的特点是 A 。
A.可随机访问任一结点 B.插入删除不需要移动元素
C.不必事先估计存储空间 D.所需空间与其长度成正比
15、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
44、下列关于哈夫曼树的叙述中,错误的是
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
湖北省考研数据结构重点知识点梳理
湖北省考研数据结构重点知识点梳理数据结构是计算机科学中一门基础性的课程,对于科研考试来说,尤为重要。
为了帮助考生更好地复习数据结构,本文将对湖北省考研数据结构的重点知识点进行梳理,以便考生有针对性地进行复习。
一、线性表及其应用1. 顺序表顺序表是一种最基本的线性表,可以使用数组实现。
其特点是元素之间的逻辑关系与物理相邻,查询效率高。
重点内容包括顺序表的定义、插入、删除、查找等操作,以及相关应用,如多项式的加法、乘法等。
2. 链表链表是另一种常见的线性表,可以通过指针实现元素之间的关联。
链表特点是插入和删除操作方便,但查找效率较低。
重点内容包括单链表、双链表的定义和实现,以及常见的链表操作。
3. 栈与队列栈和队列是两种特殊的线性表,分别具有先进后出(LIFO)和先进先出(FIFO)的特点。
重点内容包括栈和队列的定义、实现和应用,以及相关算法,如递归、括号匹配等。
二、树与二叉树4. 树树是一种非线性的数据结构,由若干个结点构成,并且每个结点可以有多个子结点。
重点内容包括树的基本概念,如树的度、层次、深度等,以及树的表示方法和遍历算法。
5. 二叉树二叉树是一种特殊的树结构,每个结点最多有两个子结点。
重点内容包括二叉树的定义、性质,如满二叉树、完全二叉树等,以及二叉树的遍历算法,如前序、中序、后序遍历等。
6. 二叉搜索树二叉搜索树是一种特殊的二叉树,对于任意结点,其左子树的所有关键字小于该结点,右子树的所有关键字大于该结点。
重点内容包括二叉搜索树的定义、插入、删除操作,以及搜索树的应用。
三、图与排序算法7. 图图是一种由顶点和边组成的数据结构,用于描述对象之间的关系。
重点内容包括图的基本概念,如顶点数、边数、路径等,以及图的表示方法和遍历算法,如深度优先搜索(DFS)、广度优先搜索(BFS)等。
8. 排序算法排序算法是数据结构中的重要内容,常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序等。
湖北大学数据结构试卷十套
数据结构试卷(一)一、单选题(每题2 分,共20分)1. 栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2. 用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3. 以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965. 树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6. 二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38. 对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9. 对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410. 设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1. 通常从四个方面评价算法的质量:_________、_________、_________和_________。
湖北省考研计算机复习资料数据结构常见题型分析
湖北省考研计算机复习资料数据结构常见题型分析数据结构是计算机科学与技术专业中的一门重要课程,也是湖北省考研计算机专业的一项重要内容。
在备考过程中,了解和掌握常见的数据结构题型及其解题思路,对于考生来说是相当关键的。
本文将对湖北省考研计算机复习资料中常见的数据结构题型进行分析,并给出解题思路和注意事项。
一、线性表题型分析线性表是计算机中最基本的数据结构之一,题型通常包括链表、顺序表、循环链表等。
其中常见的题型有以下几种:1. 单链表的建立和逆置要求实现一个单链表的建立和逆置功能。
解题思路是通过遍历原链表,将每个节点的指针指向前一个节点,实现链表的逆置。
需要注意处理链表为空的情况。
2. 删除链表中指定元素要求实现删除链表中指定元素的功能。
解题思路是通过遍历链表,找到目标元素的前一个节点,将其指针指向下一个节点,完成删除操作。
需要注意处理目标元素不存在的情况。
3. 判断链表是否有环要求判断一个链表是否存在环。
解题思路是使用快慢指针法,通过设置两个指针,一个每次走一步,一个每次走两步,判断它们是否会相遇。
如果相遇,则链表存在环;如果其中一个指针为空,则链表不存在环。
二、栈和队列题型分析栈和队列是常见的数据结构,在湖北省考研计算机复习资料中也有相应的题型。
1. 使用栈实现表达式求值要求使用栈的数据结构实现对表达式的求值。
解题思路是通过遍历表达式,将操作数入栈,遇到操作符时,将栈顶的两个操作数弹出进行计算,并将结果入栈,最终得到表达式的值。
2. 使用队列实现栈要求使用队列的数据结构实现栈。
解题思路是使用两个队列,一个用于入栈操作,一个用于出栈操作。
入栈时将元素入队,出栈时将元素出队,直到只剩一个元素时,即为栈的顶部元素。
三、树和图题型分析树和图是数据结构中比较复杂的部分,相关题型的出现频率也较高。
1. 二叉树的遍历要求实现二叉树的前序、中序和后序遍历。
解题思路是使用递归或迭代的方式遍历树的各个节点,并按照前序、中序和后序的顺序输出节点的值。
2010湖北省数据简介加强
1、设一棵二叉树的结点结构为 (LLINK,INFO,RLINK),ROOT为指向该二叉树根结点的指针,p 和q分别为指向该二叉树中任意两个结点的指针,试编写一算法ANCESTOR(ROOT,p,q,r),该算法找到p和q的最近共同祖先结点r。
2、请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink法存储。
3、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。
(20分)4、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。
29. ①试找出满足下列条件的二叉树1)先序序列与后序序列相同 2)中序序列与后序序列相同3)先序序列与中序序列相同 4)中序序列与层次遍历序列相同5、给出折半查找的递归算法,并给出算法时间复杂度性分析。
6、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针域next。
假设单链表已建立,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留一个。
#include <stdio.h>typedef char datatype;typedef struct node{datatype data;struct node * next;} listnode;typedef listnode* linklist;/*--------------------------------------------*//* 删除单链表中重复的结点 *//*--------------------------------------------*/linklist deletelist(linklist head){ listnode *p,*s,*q;p=head->next;while(p){s=p;q=p->next;while(q)if(q->data==p->data){s->next=q->next;free(q);q=s->next;}else{ s=q; /*找与P结点值相同的结点*/q=q->next;}p=p->next;}return head;7、本题应使用深度优先遍历,从主调函数进入dfs(v)时,开始记数,若退出dfs()前,已访问完有向图的全部顶点(设为n个),则有向图有根,v为根结点。
数据结构真题及答案(2010)
杭州电子科技大学2010《数据结构》真题及解析一、是非题(每小题2分,共20分)1.线性表的顺序存储结构优于链式存储结构。
2.栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
3.非空广义表的表头和表尾都有可能是原子或广义表。
4.在二叉树的先序遍历序列中,任意-个结点均处在其孩子结点的前面。
5.通常,在二叉树的第i层上有2^i-1个结点。
6.二叉树按某种次序线索化后,任一结点均有指向其前驱和后继的线索指针。
6.赫夫曼树中的结点个数一定是奇数。
8.用邻接矩阵(数组表示法)存储一个图时,所需的存储空间大小与图的边数无关。
9.对于一棵m阶的B-树而言.树中每个结点至多有m个关键字,除根之外的所有非终端结点至少有┌m/2┐个关键字。
10.对于任何待排序序列来说,快速排序均快于冒泡排序。
二、选择题(每小题2分,共20分)1.递归过程可借助于_____转化为非递归过程。
A:线性表 B:队列 C:栈 D:数组2.循环队列用数组A[0..m-1]存放其元素值,设头尾游标分别为front(队头元素的位置)和rear(队尾元素的位置),则当前队列中的元素个数是_______。
A: rear-front B: rear-front+1C: (rear-front+m)%m D: (rear-front+1+m)%m3.对广义表A=((a, (6)),(c,()),d)执行操作gettail(gethead(gettail (A)))的结果是:________。
A:() B:(()) C:d D:(d)4.对二叉排序树______可得到有序序列。
A:按层遍历 B:前序遍历C:中序遍历 D:后序遍历5.在有n个结点的二叉树的二叉链表表示中,空指针数为________。
A:不定 B: n+1 C:n D:n-16.图示的三棵二叉树中_____为最优二叉树。
A: B: C:7.设无向图G=(V,E)和G=(V′,E′),若G′是G的生成树,则下面不正确的说法是_________。
2010湖北省全国计算机等级考试二级VB笔试试卷及参考答案考试技巧重点
1、算法一般都可以用哪几种控制结构组合而成(D)A. 循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环2、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B)A. 可行性分析B. 需求分析C. 详细设计D. 程序编码3、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(D)A. 调用语句B. 命令C. 口令D. 消息4、下面描述中,符合结构化程序设计风格的是(A)A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句5、以下数据结构中不属于线性数据结构的是(C)A. 队列B. 线性表C. 二叉树D. 栈6、在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
其中数据独立性最高的阶段是(A)A. 数据库系统B. 文件系统C. 人工管理D. 数据项管理7、在一棵二叉树上第5层的结点数最多是(B) 注:由公式2(k-1)得A. 8B. 16C. 32D. 158、按条件f对关系R进行选择,其关系代数表达式为(C)A. R|X|RB. R|X|RfC. бf(R)D. ∏f(R)9、下列叙述中正确的是(A)A. 线性表是线性结构B. 栈与队列是非线性结构C. 线性链表是非线性结构D. 二叉树是线性结构10、下列工具中属于需求分析常用工具的是(D)A. PADB. PFDC. N-SD. DFD11、关系表中的每一横行称为一个(A)A. 元组B. 字段C. 属性D. 码。
华科2010级数据结构期末考试试题-A卷[1]
《数据结构》考试题(闭卷)A卷(电信系本科2010级2012年1月11日)姓名班级学号一、回答下列问题 (每题5分,共40分)1.采用哪种方法可构建表示表达式的二叉树,画出表示表达式A-B/(C+D)+E*F 的二叉树,并给出后序遍历结果。
采用表达式求值方法+-*A / E FB +C D后序遍历结果ABCD+/-EF*+2.待排序列有256个关键字,采用锦标赛排序排出最小三个关键字的比较次数是多少?需多少个辅助空间。
锦标赛排序空间复杂度是多少?比较次数255+8+8辅助空间255+1空间复杂度o(n)3.对n个记录的线性表进行快速排序,为减少算法的递归深度(空间),以下叙述正确的是()A.每次分割后,先处理较短的部分B.每次分割后,先处理较长的部分C.与算法每次分割后的处理顺序无关D.以上三者都不对4.在KMP算法中,已知模式串为ACBACBBAD, 写出模式串的next[j]函数值,若主串为ADACBACACBACBBADABD, 给出匹配成功的比较次数。
next[j]函数值0 1 1 1 2 3 4 1 2比较次数2+1+6+3+95.在二叉树的前、中、后序遍历序列中,所有叶子结点间的先后关系都是相同的。
这个结论对吗?为什么?6.一输入序列(38,17,29,22,58,82,19,16),画出二叉排序树, 并计算平均查找长度ASL。
输入序列在哪种情况下,二叉排序树查找与顺序查找比较次数相同?3817 5822 29 8216 19ASL=(1 + 2*2 + 3*3 + 4*2)/8输入序列为有序序列时相同7.设Hash表的冲突采用线性探测散列,给定一个待查找元素x,如果x不在Hash表中,如何给出判别准则,简单分析你的结论。
8.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为多少?二、综合题(共30分)1. 下面是用c 语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用L 返回逆置后的链表的头指针,试在空缺处填入适当的语句。
数据结构湖北省考研复习重点梳理
数据结构湖北省考研复习重点梳理一、概述数据结构作为计算机科学中的重要基础知识,是湖北省考研计算机专业的重点内容之一。
掌握数据结构的基本概念、常见数据结构的特点和操作,以及各种数据结构的应用领域和算法的时间复杂度分析方法,对于考研复习至关重要。
二、线性结构1. 数组数组是最基本的数据结构之一,具有连续存储和随机访问的特点。
在复习过程中,需要掌握数组的定义、元素的存储和访问方式,以及数组的应用场景和时间复杂度分析方法。
2. 链表链表是一种非连续存储的线性结构,包括单链表、双向链表和循环链表等。
需要重点复习链表的结构特点、操作方法,以及链表的插入、删除和反转等常见问题的解决思路和算法实现。
3. 栈和队列栈和队列是两种特殊的线性结构,具有“先进后出”和“先进先出”的特点。
需要理解栈的定义、入栈和出栈操作,以及队列的定义、入队和出队操作,同时掌握栈和队列的应用场景和常见算法,如使用栈实现括号匹配和使用队列实现广度优先搜索等。
三、非线性结构1. 树树是一种重要的非线性结构,包括二叉树、平衡树、堆和哈夫曼树等。
在复习过程中,需要熟悉树的定义、遍历方式(前序遍历、中序遍历和后序遍历)、常用树的应用,以及树的构建和查找等基本操作。
2. 图图是由顶点和边组成的非线性结构,包括有向图和无向图等。
需要掌握图的基本概念、图的遍历方式(深度优先搜索和广度优先搜索)、最短路径算法(Dijkstra算法和Floyd算法)和最小生成树算法(Prim算法和Kruskal算法),以及图的应用和相关算法的时间复杂度分析方法。
四、查找和排序1. 查找算法查找算法是数据结构中的重要内容,包括顺序查找、二分查找和哈希查找等。
需要掌握各种查找算法的基本思想、时间复杂度分析和应用场景,同时了解查找算法的优化方法,如二叉查找树和B树等。
2. 排序算法排序算法是数据结构中的核心内容,包括冒泡排序、插入排序、快速排序和归并排序等。
需要了解各种排序算法的基本思想、时间复杂度分析和稳定性,同时掌握排序算法的应用场景和优化方法,如希尔排序和堆排序等。
数据结构考试试题库含答案解析
数据结构习题集含答案目录目录 (1)选择题 (2)第一章绪论. (2)第二章线性表. (4)第三章栈和队列. (6)第四章串. (7)第五章数组和广义表 (8)第六章树和二叉树 (8)第七章图. (11)第八章查找. (13)第九章排序. (14)简答题 (19)第一章绪论. (19)第二章线性表. (24)第三章栈和队列. (26)第四章串. (28)第五章数组和广义表 (29)第六章树和二叉树 (31)第七章图. (36)第八章查找. (38)第九章排序. (39)编程题 (41)第一章绪论. (41)第二章线性表. (41)第三章栈和队列. (52)第四章串. (52)第五章数组和广义表 (52)第六章树和二叉树 (52)第七章图. (52)第八章查找. (52)第九章排序. (57)选择题第一章绪论1. 数据结构这门学科是针对什么问题而产生的?( A )A、针对非数值计算的程序设计问题 B 、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针对2. 数据结构这门学科的研究内容下面选项最准确的是( D )A、研究数据对象和数据之间的关系 B 、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3. 某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下面关于数据对象、数据元素、数据项描述正确的是( C )A、某班级的学生成绩表是数据元素,90 分是数据项B、某班级的学生成绩表是数据对象,90 分是数据元素C、某班级的学生成绩表是数据对象,90 分是数据项D、某班级的学生成绩表是数据元素,90 分是数据元素4. *数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6. 算法分析的目的是( C )A、找出数据的合理性B、研究算法中的输入和输出关系C、分析算法效率以求改进D、分析算法的易懂性和文档型性7. 算法分析的主要方法( A )。
2010湖北省公务员考试公共基础知识理论考试试题及答案
A、军事机构 B、政府机构 C、教育机构 D、商业公司
13、存储容量1MB为____。
A、100KB B、1024KB C、8000KB D、1000KB
14、下面列出的条目中,数据库的主要特点是____:I、存储大量数据;II、高效检索;III、管理操作方便;IV、通过网络实现数据共享。
B、必须输入某站点的IP地址
C、输入某站点的域名或IP地址均可
D、什么都不要输入
A、可以有多个活动窗口 B、只有一个活动窗口
C、没有确定的活动的窗口 D、没有一个是活动的窗口
27、下列关于电子邮件的不正确叙述是____。
A、电子邮件是Internet提供的一种信息浏览服务
B、用户可以通过一台联入Internet的计算机向世界任何地方的用户发送电子邮件
1、结构化程序设计的三种基本控制结构是____。
A、顺序、选择和转向 B、层次、网状和循环
C、模块、选择和循环 D、顺序、循环和选择
2、利用计算机可以对声音、图形、图像等进行处理,这属于计算机____方面的应用。
A、科学计算 B、数据处理 C、生产过程控制 D、嵌入式应用计
A、设计算法→编写程序
B、编写程序→调试程序→检测结果
C、分析问题→设计算法→编写程序→调试运行→检测结果
D、 编写程序→调试运行
25、____特点是处理的信息数据量比较大而数值计算并不十分复杂。
A、工程计算 B、数据处理 C、自动控制 D、实时控制
26、在Windows中,当桌面上已经打开多个窗口时,____。
A、Ⅰ、Ⅱ和Ⅲ B、Ⅰ和Ⅱ C、Ⅰ、Ⅱ和Ⅳ D、都是
2010湖北省计算机等级考试试题 二级C试题试题及答案
1、在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计A. 详细设计B. 需求分析C. 总体设计D. 编程调试2、在关系数据库中,用来表示实体之间联系的是(D)A. 树结构B. 网结构C. 线性表D. 二维表3、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库4、在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D)A. 概要设计B. 详细设计C. 可行性分析D. 需求分析5、下列关于栈的叙述中正确的是(D)A. 在栈中只能插入数据B. 在栈中只能删除数据C. 栈是先进先出的线性表D. 栈是先进后出的线性表6、设有下列二叉树:图见书P46对此二叉树中序遍历的结果为(B)A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA7、软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B)A. 阶段性报告B. 需求评审C. 总结D. 都不正确8、以下数据结构中不属于线性数据结构的是(C)A. 队列B. 线性表C. 二叉树D. 栈9、下面概念中,不属于面向对象方法的是 (D)A. 对象B. 继承C. 类D. 过程调用10、面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是(C)A. 模拟现实世界中不同事物之间的联系B. 强调模拟现实世界中的算法而不强调概念C. 使用现实世界的概念抽象地思考问题从而自然地解决问题D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考11、在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
其中数据独立性最高的阶段是(A)A. 数据库系统B. 文件系统C. 人工管理D. 数据项管理12、设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为(B) 注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出A. 349B. 350C. 255D. 35113、以下数据结构中不属于线性数据结构的是(C)A. 队列B. 线性表C. 二叉树D. 栈。
2010年湖北省《数据结构》期末考试试题及答案必过技巧
C)DEBFGCA D)GFCEBDA
44、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
45、下述排序方法中,时间性能和待排序记录的初始状态无关的是( )
31、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
(2)A.空间复杂度和时间复杂度 B.正确性和简明性
C.可读性和文档性 D.数据复杂性和程序复杂性
33、下列选项中,其平均查找性能与基于二叉排序树的查找相当的是
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
34、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
B.{24,89,55,60,93,102}
C.{102,93,55,60,89,24}
11、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
D 存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
12、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
13、下列选项中,其平均查找性能与基于二叉排序树的查找相当的是
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
14、数据结构在计算机内存中的表示是指 A 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、编写一个过程,对一个n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列。
2、因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶指针,每当退栈时,栈顶指针高于保存最高栈顶指针的值时,则将该栈倒入辅助栈中,辅助栈始终保存最长路径长度上的结点,直至后序遍历完毕,则辅助栈中内容即为所求。
void LongestPath(BiTree bt)//求二叉树中的第一条最长路径长度
{BiTree p=bt,l[],s[]; //l, s是栈,元素是二叉树结点指针,l中保留当前最长路径中的结点
int i,top=0,tag[],longest=0;
while(p || top>0)
{ while(p) {s[++top]=p;tag[top]=0; p=p->Lc;} //沿左分枝向下
if(tag[top]==1) //当前结点的右分枝已遍历
{if(!s[top]->Lc && !s[top]->Rc) //只有到叶子结点时,才查看路径长度
if(top>longest) {for(i=1;i<=top;i++) l[i]=s[i]; longest=top; top--;}
//保留当前最长路径到l栈,记住最高栈顶指针,退栈
}
else if(top>0) {tag[top]=1; p=s[top].Rc;} //沿右子分枝向下
}//while(p!=null||top>0)
}//结束LongestPath
3、数组A和B的元素分别有序,欲将两数组合并到C数组,使C仍有序,应将A和B拷贝到C,只要注意A和B数组指针的使用,以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可。
void union(int A[],B[],C[],m,n)
//整型数组A和B各有m和n个元素,前者递增有序,后者递减有序,本算法将A和B归并为递增有序的数组C。
{i=0; j=n-1; k=0;// i,j,k分别是数组A,B和C的下标,因用C描述,下标从0开始while(i<m && j>=0)
if(a[i]<b[j]) c[k++]=a[i++] else c[k++]=b[j--];
while(i<m) c[k++]=a[i++];
while(j>=0) c[k++]=b[j--];
}算法结束
4、要求二叉树按二叉链表形式存储。
15分
(1)写一个建立二叉树的算法。
(2)写一个判别给定的二叉树是否是完全二叉树的算法。
BiTree Creat() //建立二叉树的二叉链表形式的存储结构
{ElemType x;BiTree bt;
scanf(“%d”,&x); //本题假定结点数据域为整型
if(x==0) bt=null;
else if(x>0)
{bt=(BiNode *)malloc(sizeof(BiNode));
bt->data=x; bt->lchild=creat(); bt->rchild=creat();
}
else error(“输入错误”);
return(bt);
}//结束 BiTree
int JudgeComplete(BiTree bt) //判断二叉树是否是完全二叉树,如是,返回1,否则,返回0
{int tag=0; BiTree p=bt, Q[]; // Q是队列,元素是二叉树结点指针,容量足够大
if(p==null) return (1);
QueueInit(Q); QueueIn(Q,p); //初始化队列,根结点指针入队
while (!QueueEmpty(Q))
{p=QueueOut(Q); //出队
if (p->lchild && !tag) QueueIn(Q,p->lchild); //左子女入队
else {if (p->lchild) return 0; //前边已有结点为空,本结点不空
else tag=1; //首次出现结点为空
if (p->rchild && !tag) QueueIn(Q,p->rchild); //右子女入队
else if (p->rchild) return 0; else tag=1;
} //while
return 1; } //JudgeComplete
4、给出折半查找的递归算法,并给出算法时间复杂度性分析。
5、对二叉树的某层上的结点进行运算,采用队列结构按层次遍历最适宜。
int LeafKlevel(BiTree bt, int k) //求二叉树bt 的第k(k>1) 层上叶子结点个数
{if(bt==null || k<1) return(0);
BiTree p=bt,Q[]; //Q是队列,元素是二叉树结点指针,容量足够大
int front=0,rear=1,leaf=0; //front 和rear是队头和队尾指针, leaf是叶子结点数
int last=1,level=1; Q[1]=p; //last是二叉树同层最右结点的指针,level 是二叉树的层数
while(front<=rear)
{p=Q[++front];
if(level==k && !p->lchild && !p->rchild) leaf++; //叶子结点
if(p->lchild) Q[++rear]=p->lchild; //左子女入队
if(p->rchild) Q[++rear]=p->rchild; //右子女入队
if(front==last) {level++; //二叉树同层最右结点已处理,层数增1
last=rear; } //last移到指向下层最右一元素
if(level>k) return (leaf); //层数大于k 后退出运行
}//while }//结束LeafKLevel
6、题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均值排列与按每行元素之和排列是一个意思。
所以应先求出各行元素之和,放入一维数组中,然后选择一种排序方法,对该数组进行排序,注意在排序时若有元素移动,则与之相应的行中各元素也必须做相应变动。
void Translation(float *matrix,int n)
//本算法对n×n的矩阵matrix,通过行变换,使其各行元素的平均值按递增排列。
{int i,j,k,l;
float sum,min; //sum暂存各行元素之和
float *p, *pi, *pk;
for(i=0; i<n; i++)
{sum=0.0; pk=matrix+i*n; //pk指向矩阵各行第1个元素.
for (j=0; j<n; j++){sum+=*(pk); pk++;} //求一行元素之和.
*(p+i)=sum; //将一行元素之和存入一维数组.
}//for i
for(i=0; i<n-1; i++) //用选择法对数组p进行排序
{min=*(p+i); k=i; //初始设第i行元素之和最小.
for(j=i+1;j<n;j++) if(p[j]<min) {k=j; min=p[j];} //记新的最小值及行号.
if(i!=k) //若最小行不是当前行,要进行交换(行元素及行元素之和)
{pk=matrix+n*k; //pk指向第k行第1个元素.
pi=matrix+n*i; //pi指向第i行第1个元素.
for(j=0;j<n;j++) //交换两行中对应元素.
{sum=*(pk+j); *(pk+j)=*(pi+j); *(pi+j)=sum;}
sum=p[i]; p[i]=p[k]; p[k]=sum; //交换一维数组中元素之和.
}//if
}//for i
free(p); //释放p数组.
}// Translation
[算法分析] 算法中使用选择法排序,比较次数较多,但数据交换(移动)较少.若用其它排序方法,虽可减少比较次数,但数据移动会增多.算法时间复杂度为O(n2).
7、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>}
写出G的拓扑排序的结果。
G拓扑排序的结果是:V1、V2、V4、V3、V5、V6、V7
8、二路插入排序是将待排关键字序列r[1..n]中关键字分二路分别按序插入到辅助向量d[1..n]前半部和后半部(注:向量d可视为循环表),其原则为,先将r[l]赋给d[1],再从r[2] 记录开始分二路插入。
编写实现二路插入排序算法。
9、在有向图G中,如果r到G中的每个结点都有路径可达,则称结点r为G的根结点。
编写一个算法完成下列功能:
(1).建立有向图G的邻接表存储结构;
(2).判断有向图G是否有根,若有,则打印出所有根结点的值。