2010黑龙江省数据结构考试高级
2010黑龙江省数据结构与算法试题及答案
30、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
D)内部结构和外部结构
31、数据结构研究的内容是( D )。
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]
20、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
38、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。
A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
A)顺序表 B)双链表 C)带头结点的双循环链表 D)单循环链表
21、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
13、下列序列中,执行第一趟快速排序后得到的序列是( 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]
14、n个顶点的强连通图至少有( A )条边。
2、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
2010年计算机专业统考试题数据结构
基本内容
7、线索二叉树 前序:结点x的后继为其左孩子的根,若没有左孩子, 则为右孩子的根,若既无左孩子又无右孩子,后继 为祖先结点的右孩子的根。 中序:结点x的右孩子不为空,后继为其右孩子的根 结点,若右孩子为空,后继为其双亲结点。 后序:若结点x是二叉树的根,后继为空;若结点x是 其双亲的右孩子或是左孩子且双亲没有右孩子,后 继为双亲;若结点x是其双亲的左孩子且双亲有右 孩子,后继为双亲的右孩子中按后序遍历的第一个 结点。
void PostOrder(Bitree T) { Bitree stack[], p; int tag[], top=0; p=T; while(top>0||p!=NULL) { while(p!=NULL) { top++; stack[top]=p; tag[top]=0; p=p->lchild; } if(top>0) { p=stack[top]; while(tag[top]==1) { top--; visit(p->data); p=stack[to} if(top>0) { p=stack[top]; p=p->rchild; tag[top]=1;} } } }
例题
2、交换所有结点的左右子树。 void Bitree_Revolute(Bitree T) { if(T!=NULL) T->lchild<->T->rchild; if(T->lchild) Bitree_Revolute(T->lchild); if(T->rchild) Bitree_Revolute(T->rchild); }
void inorderexp( Bitree bt) { if(bt) { if(bt->lchild!=NULL) { m=precede(bt->data,bt->lchild->data); if(m==1) printf(“(“); inorderexp(bt->lchild); if(m==1) printf(“)”); } printf(bt->data); if(bt->rchild!=NULL) { m=precede(bt->data, bt->rchild->data); if(m==1) printf(“(“); inorderexp(bt->rchild); if(m==1)printf(“)”); } } }
二○一○年一月黑龙江省学业水平考试信息技术试卷参考答案
2010年黑龙江省普通高中学业水平考试技术(组合)答案信息技术一、单项选择题(20小题,每小题l分;共20分)题号 1 2 3 4 5 6 7 8 9 10答案 B A D D A A C B B A题号 1 1 1 2 1 3 14 1 5 1 6 1 7 1 8 1 9 20答案 B A D C D B A B B C二、判断题(选修模块:每个选修模块1 0小题,每小题l分:共10分)题号 21 22 23 24 25 26 27 28 29 30选修l:算法与程序设计√××√×××√×√选修2:多媒体技术应用√√×√×√ 0 ×√×选修3:网络技术应用 0 ×√ 0 √×√√××选修4:数据管理技术√√×√××√√×√三、综合题(选修模块:共20分)(一)选修l:算法与程序设计31.(1)本题6分,表达式有多种书写情况,合理即给分。
参考答案:(2)本题5分,流程图画法有多种,流程符号使剧规范,逻辑表达清楚,即给分:有错误或不完整,酌情扣分。
参考流程图及评分参考:(3)本题5分,窗体布局样式有多种,布局合理,控件选用正确即给分;不合理,酌情扣分。
窗体布局参考图及评分参考:(4)本题4分,答出一条给1分。
提出问题或分析问题…………………………………………………………………1分设计算法…………………………………………………………………………………l分编写程序…………………………………………………………………………………l分调试运行程序或得到结果…………………………………………………………………1分(二)选修2:多媒体技术应用31.(1)本题6分,本题为开放题,答案不唯一,合理即给分。
①多媒体作品(或演示文稿、网页、动画、视频、图、海报、电子板报) …………2分②与庆祝建国60周年主题相关的内容即给分 (2)分③与①对应的多媒体制作软件,合理即给分(不区分软件中英文名称) ……………2分(2)本题5分,本题为开放题,答案不唯一。
黑龙江大学数据结构考试题
《数据结构课程设计》讲义一、表达式求值问题1.1 问题定义及设计要求表达式求值是程序设计语言编译中的一个最基本问题。
人们在书写表达式时通常采用将运算符放在两个操作数中间的“中缀”表示形式,称为中缀表达式。
但是这种表达式形式对计算机处理来说是不太适合的。
在计算机领域,经常将算术表达式表示成“后缀”表示形式,称为后缀表达式。
如: 中缀表达式3+2*(7-5)对应的后缀表达式为3275-*+。
要求实现(1)算数四则运算中缀表达式到后缀表达式的转换;(2)后缀表达式的求值;(3)中缀表达式的求值。
要求以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。
要求演示在求值过程中运算符栈、操作数栈、输入字符和主要操作过程及运算结果。
要求配备菜单,含如下选项:------------------------------------------------------1. 中缀表达式到后缀表达式的转换2. 后缀表达式的计算3. 中缀表达式的计算4. 退出-------------------------------------------------------1.2 中缀表达式到后缀表达式的转换(1)问题分析假设在算术表达式中只含四种基本运算符,操作数是10以内的整数。
假设一个中缀表达式中没有括号(如4+2*3,它的后缀表达式为423*+)。
在扫描到中缀表达式中的2后,能立即输出+,因为*具有较高优先级,必须必须先运算,因此需先保存+。
也就是说,新扫描运算符优先级必须与前一个运算符的优先级做比较,如果新的运算符优先级高,就要像前一个运算符那样保存它,直到扫描到第二个操作数,将它输出后才能将该运算符输出。
因此,在转化中必须保存两个运算符,后保存的运算符先输出。
用计算机来实现这个转化过程,就需要用到能后进先出的数据结构----栈。
如果在中缀表达式中含小括号,那么由于括号隔离了优先级规则,它在整个表达式的内部产生了完全独立的子表达式。
数据结构真题及答案(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春A卷 试题
哈工大2010年春季学期数据结构与算法 A 试 卷一、填空题(每空1分,共15分) 1. 在顺序存储的二叉树中,编号为i 和j 的两个结点处在同一层的条件是____________。
2.某二叉树的前序遍历序列是ABCDEFG ,中序遍历序列是CBDAFGE ,则其后序遍历序列是_______________。
3.在有n 个叶子的哈夫曼树中,分支结点总数为___________个。
4.对于含有n 个顶点e 条边的连通图,利用Prim 算法求最小生成树的时间复杂度为___________。
5. 表达式a*(b+c)-d 的后缀表达式是___________。
6. 假定一棵二叉树的结点数为18,则它的最小深度为_______,最大深度为______。
7. 设有一个n 阶的下三角矩阵A ,如果按照行的顺序将下三角矩阵中的元素(包括对角线上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有_______ 个数据元素。
8. 设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始堆为________________________。
9. 磁盘文件的归并技术有______________、____________、__________。
10. 设有向图G 中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________。
11.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行________趟的分配和回收才能使得初始关键字序列变成有序序列。
12. 利用Dijkstra 算法求从有向图顶点v1到其他各顶点的最短路径要求边上权值_________。
黑龙江专升本考试数据结构试题
黑龙江专升本考试数据结构试题黑龙江专升本数据结构试题(仅供个人复习参考,未经同意不得转载和做为商业用途)一、单项选择题(本大题共10小题,每小题1分,共计10分)1.适合于对动态查找表进行高效率查找的组织结构为( A )A、有序表B、分块有序表C、二叉排序树D、线性链表2.若数据的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( A )A、顺序存储结构B、散列存储结构C、链式存储结构D、索引存储结构3.在已知待排序文件已基本有序的前提下,效率最高的排序方法是( )A、直接插入排序B、简单选择排序C、快速排序D、归并排序4.栈和队列的共同特点是( )A、都是先进后出B、都是先进先出C、没有共同点D、只允许在端点处插入和删除元素5.计算机算法指的是( )A、计算机程序B、解决问题的计算方法C、查找排序算法D、解决问题的有限指令序列6.任一棵二叉树的叶结点在先序,中序,后序遍历序列中的相对次序( )A、不发生变化B、发生变化C、不能确定D、以上都不对7.用容量为m的数组表示一循环队列,front,rear分别是队头、队尾指针,则队列中当前元素的个数为( )A、(rear-front+m) mod mB、rear-front+1C、rear-front-1D、rear-front8.设sub(s,i,j)的功能是返回串s从第i个字符开始长度为j的子串,scopy(s,t)的功能是复制串t到s,若字符串s=`SCIENCESTUDY’,则调用scopy(p,sub(s,1,7))后得到( )A、p=`SCIENCE’B、p=`STUDY’C、s=`SCI ENCE’D、s=`STUDY’9.一批数据用顺序存储结构,第一个元素的存储地址是200,且每个元素长度为2,则第5个元素的存储地址是( )A、210B、208C、200D、22010.在数据结构中,从逻辑上可以把数据结构分成( )A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构二、填空题(本大题共10小题,每小题1分,共计10分)1.在哈希查找中,若哈希函数是H(key)=key mod p,则p值应取。
2010黑龙江省全国计算机等级考试二级VB笔试试卷及参考答案最新考试试题库
D、计算机病毒只破坏内存中的程序和数据
30、在微机中,ASCII码常用于表示( B )
A、西文、汉字混合编码 B、西文字符
C、汉字编码 D、以上答案者不对
17、在计算机领域中,通常用英文单词“bit”来表示( C )
A、字 B、字长 C、二进制位 D、字节
18、微型计算机存储系统中,EPROM是(A )
A、可擦可编程的只读存储器 B、动态随机存取存储器
C、只读存储器 D、可编程只读存储器
21、针式打印机术语中,24针是指( D )
A、24×24点阵 B、信号线插头有24针
C、打印头内有24×24根针 D、打印头内有24根针
22、静态RAM的特点是( A )
A、在不断电的条件下,其中的信息保持不变,因而不必定期刷新
A、可擦可编程的只读存储器 B、动态随机存取存储器
C、只读存储器 D、可编程只读存储器
39、与十进制数254D等值的二进制数是( A )
A、11111110B B、11101111B C、11111011B D、11101110B
1、SRAM存储器的中文含义是( A )
A、静态随机存储器 B、动态随机存储器
C、静态只读存储器 D、动态只读存储器
2、在计算机的应用中,“OA”表示( C)
A、管理信息系统 B、决策支持系统
13、LINUX是一种( B )
A、数据库管理系统 B、微机操作系统
C、字处理系统 D、鼠标器驱动程序
14、一般情况下,1KB内在最多能存储( B )个ASCII码字符,或( B )个汉字内码。
A、1024.1024 B、1024,512 C、512,512 D、512,1024
2010黑龙江省计算机等级考试二级考试题库
1、软件调试的目的是(B) 注:与软件测试要对比着复习A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能2、算法的空间复杂度是指(D)A. 算法程序的长度B. 算法程序中的指令条数C. 算法程序所占的存储空间D. 算法执行过程中所需要的存储空间3、软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B)A. 阶段性报告B. 需求评审C. 总结D. 都不正确4、以下数据结构中不属于线性数据结构的是(C)A. 队列B. 线性表C. 二叉树D. 栈5、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B)A. 可行性分析B. 需求分析C. 详细设计D. 程序编码6、算法一般都可以用哪几种控制结构组合而成(D)A. 循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环7、算法的时间复杂度是指(C)A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数8、程序流程图(PFD)中的箭头代表的是(B)A. 数据流B. 控制流C. 调用关系D. 组成关系9、索引属于(B)A. 模式B. 内模式C. 外模式D. 概念模式10、对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为(B) 注:要牢记A. N+1B. NC. (N+1)/2D. N/211、在软件开发中,下面任务不属于设计阶段的是(D)A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型12、面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是(C)A. 模拟现实世界中不同事物之间的联系B. 强调模拟现实世界中的算法而不强调概念C. 使用现实世界的概念抽象地思考问题从而自然地解决问题D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考13、算法一般都可以用哪几种控制结构组合而成(D)A. 循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环14、数据库设计包括两个方面的设计内容,它们是(A)A. 概念设计和逻辑设计B. 模式设计和内模式设计C. 内模式设计和物理设计D. 结构特性设计和行为特性设计15、希尔排序法属于哪一种类型的排序法(B)A.交换类排序法B.插入类排序法C.选择类排序法D.建堆排序法16、在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
黑龙江省数据库期末考试高级
黑龙江省数据库期末考试高级20XX年黑龙江省数据库期末考试高级1、假设K1,,Kn是n个关键词,试解答:试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,,Kn时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。
2、(1)p-rchild (2)p-lchild (3)p-lchild (4)ADDQ(Q,p-lchild)(5)ADDQ(Q,p-rchild)25. (1)t-rchild!=null (2)t-rchild!=null (3)N0++ (4)count(t-lchild)(5)count(t-rchild)26. .(1)top++ (2) stack[top]=p-rchild (3)top++(4)stack[top]=p-lchild27. (1)*ppos // 根结点(2)rpos=ipos (3)rposCipos (4)ipos (5)ppos+13、假设以I和O分别表示入栈和出栈操作。
栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。
(15分)(1)A和D是合法序列,B和C 是非法序列。
(2)设被判定的操作序列已存入一维数组A中。
int Judge(char A[])//判断字符数组A中的输入输出序列是否是合法序列。
如是,返回true,否则返回false。
{i=0; //i为下标。
j=k=0; //j和k分别为I和字母O的的个数。
while(A[i]!=‘\0’) //当未到字符数组尾就作。
{switch(A[i]){case‘I’: j++; break; //入栈次数增1。
case‘O’: k++; if(kj){printf(“序列非法\n”);exit(0);}}i++; //不论A[i]是‘I’或‘O’,指针i均后移。
}if(j!=k) {printf(“序列非法\n”);return(false);}else {printf(“序列合法\n”);return(true);}}//算法结束。
2012黑龙江省数据结构(C++)最新考试试题库(完整版)
1、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
A)top不变 B)top=0 C)top-- D)top++2、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表3、下列序列中,执行第一趟快速排序后得到的序列是( 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]4、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
A)loc(A1)+i*c B)loc(A1)+(i-1)*cC)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c5、下面程序段的时间复杂度是( A )。
s =0;for( i =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;A) O(n2) B) O(n)C) O(m*n) D)O(1)6、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A) 单链表 B) 仅有头指针的单循环链表C) 双链表 D) 仅有尾指针的单循环链表7、串的逻辑结构与( D )的逻辑结构不相同。
A)线性表 B)栈C)队列 D)集合8、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;C)p=p->next->next; D) p->next=p;9、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。
2012黑龙江省数据结构(C++)试题及答案
1、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一C)不含回路 D)有n条边2、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。
A) hs->next=s; B) s->next=hs->next; hs->next=s;C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;3、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
A) (G) B) (D) C) C D) D4、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵C) 对角矩阵 D) 对称矩阵5、串的逻辑结构与( D )的逻辑结构不相同。
A)线性表 B)栈C)队列 D)集合6、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一C)不含回路 D)有n条边7、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)128、队列的操作的原则是( A )。
A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除9、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一C)不含回路 D)有n条边10、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的11、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。
A)9 B)11 C)15 D)不能确定12、n个顶点的图的最小生成树必定( D ),是不正确的描述。
数据结构考试试题库含答案解析
数据结构习题集含答案目录目录 (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秋-《C++与数据结构》A(B5)
a) b)
为这 8 个字母设计 Huffman 编码,并画出其相应的 Huffman 树; 设 Huffman 树中每个结点有三个域: lChild 、 rChild 和 element ,试设计一个递归算法 【要求】 :如果采用非递归算法,将视为无效;必须用 求该 Huffman 树的带权路径长度。 C++语言给出该递归算法对应的函数说明及实现。
第 4 页 (共 10 页)
试 题: 《高级语言程序设计与数据结构》 (A 卷) 班号:
姓名:
4. (11 分)请分别回答下列问题: a) b)
请简述 C++语言中 const 关键字、类型适应的常见用法及注意事项; (6 分) 以 C++为例,请简述你对面向对象的程序设计中多态性的理解。 (5 分)
M 1 M K 个元素是
。
5. 最大容量为 N 的循环队列,队尾指针是 rear ,队首指针为 front ,则队满的条件
是 。 。
6. 已知模式串 S ' ababaabab ' ,则其 next 数组值为
7. 设有数组 A i, j , 数组的每个元素长度为 3 字节,i 的值为 1 到 8, j 的值为 1 到 10,
p , p , p , , p ,则由序列 1, 2, 3, , n 可通过一个栈得到序列 p1 , p2 , p3 , , pn 。
1 2 3 n
第 2 页 (共 10 页)
试 题: 《高级语言程序设计与数据结构》 (A 卷) 班号:
姓名:
2. (20 分)已知某带权无向图的邻接矩阵三元组压缩存储如下图(本三元组压缩存储中,对于
2010年黑龙江省学习数据库大纲
1、我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。
所谓“破圈法”就是“任取一圈,去掉圈上权最大的边”,反复执行这一步骤,直到没有圈为止。
请给出用“破圈法”求解给定的带权连通无向图的一棵最小代价生成树的详细算法,并用程序实现你所给出的算法。
注:圈就是回路。
2、假设K1,…,Kn是n个关键词,试解答:试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。
3、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。
(注:双向起泡排序即相邻两趟排序向相反方向起泡)4、(1)p->rchild (2)p->lchild (3)p->lchild (4)ADDQ(Q,p->lchild)(5)ADDQ(Q,p->rchild)25. (1)t->rchild!=null (2)t->rchild!=null (3)N0++ (4)count(t->lchild) (5)count(t->rchild)26. .(1)top++ (2) stack[top]=p->rchild (3)top++ (4)stack[top]=p->lchild27. (1)*ppos // 根结点(2)rpos=ipos (3)rpos–ipos (4)ipos (5)ppos+1。
2010年黑龙江省数据结构试题及答案修改二必过技巧
C.指针型 D.常值引用型?
26、在平衡二叉树中插入一个结点后造成不平衡,设最低的不平衡结点为A,并已知A的左孩子平衡因子为0,右孩子平衡因子为1,则应该做( )型调整以使其平衡
A LL B LR C RL D RR
C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s
D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s
12、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A 插入排序和快速排序 B 归并排序和快速排序
C 选择排序和归并排序 D 插入排序和归并排序
42、从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
A 5,4,3,2,1 B 4,5,3,2,1 C 4,3,5,1,2 D 1,2,3,4,5
8、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
37、由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48
C. 72 D. 53
2010黑龙江省计算机等级考试试题 二级C试题(必备资料)
3、与十进制数254D等值的二进制数是( A )
A、11111110B B、11101111B C、11111011B D、11101110B
4、软磁盘格式化时,被划分为一定数量的同心圆磁道,软盘上最外圈的磁道是( A )
A、显示器 B、CPU C、内存储器 D、I/O设备
38、我们常见的PCI总线属于( C )
A、内部总线 B、系统总线 C、扩展总线 D、以上答案都不是
39、计算机的内存中有一项占据4个字节的数据,内容依次为61H、41H、31H、51H,这项数据可能是( C )
C、第三代计算机时期 D、第四代计算机时期
8、计算机的内存中有一项占据4个字节的数据,内容依次为61H、41H、31H、51H,这项数据可能是( C )
A、汉字,西文混合字符串 B、汉字字符串
C、西文字符串 D、控制字符串
A、速度 B、分辨率 C、可靠性 D、精度
13、计算机病毒是可以造成机器故障的( D )
A、一种计算机设备 B、一种计算机芯片
C、一种计算机部件 D、一种计算机程序
9、微型计算机存储系统中,EPROM是(A )
A、可擦可编程的只读存储器 B、动态随机存取存储器
C、只读存储器 D、可编程只读存储器
10、计算机系统由( C )组成。
A、主机和系统软件 B、硬件系统和应用软件
C、只读存储器 D、可编程只读存储器
26、计算机病毒主要( D )的损坏。
A、软盘 B、磁盘驱动器 C、硬盘 D、程序和数据
27、计算机中,一个浮点数由两部分组成,它们是( A )
A、阶码和尾数 B、基数和尾数 C、阶码和基数 D、整数和小数
2010年l2月黑龙江省普通高中学业水平考
2010年l2月黑龙江省普通高中学业水平考试信息技术(共50分)第一部分选择题(所有考生必答,共20分)一、单项选择题(本题20小题,每小题l分,共20分) ”1.我国古代人利用“燃烧的烽火”传递“入侵的敌情”,这个案例说明信息具有A.普遍性 B依附性 C.共享性 D.客观性2.在下列信息技术应用中,属于信息采集的是A.用千千静听欣赏音乐 B.用暴风影音观看电影C.用打印机输出研究报告 D.用数码相机拍摄照片3.下列获取和利用信息的步骤,排列顺序合理的是。
①分析信息需求②有效获取信息③合理利用信息④确定信息来源九①②③③ B.①④②③ C.①③②④ D.④③②①4.张伟小组拟开展“市场上畅销洗衣粉去污效果对比”的研究,下列可以帮助他们获取第一手信息的方法是A.文献法 B.实验法 C.网络检索法 D.视听法5.要获取与人体健康相关的信息,下列信息来源中不可靠...的是A.专业医学书刊 B.知名医学专家C.街头虚假广告 D.权威医学网站6.学校准备制作一个。
“庆祝建国60周年”的主题网页,下列步骤排列顺序合理的是①收集和加工素材②规划网页的内容、结构③发布网页作品④制作网页A.③②①④ B.②(D④③ C.①③②④ D.②③④①7.下列不属于...搜索引擎网站的是A.百度 B.雅虎 C.淘宝 D.谷歌8.小强同学将下载的文本信息在计算机中进行排版,下列软件中适合的是A. Flash B.Photoshop C.Word D.Access9.分析氧气在空气中所占的比例,下列图表中最适合的是A.散点图 B.折线图 C.面积图 D.饼图10.下列选项中,不是..图片类型的文件是A.长城.TXT B.长城.BMP C.长城.GIF D.长城.JPG11.小明想用计算机录制一首个人诗朗诵,下列软件中不适用...的是A.Windows自带的录音机 B.录音大师C.金山毒霸 D.Goldwave12.下列有关视频的说法,不正确...的是A.视频是由一连串连续变化的画面组成的动态场景B.视频文件只能在MP4中播放C.AVl格式文件属于视频文件D.视频信息集文字、声音、图像于一体,内容丰富,表现力强13.妈妈与上大学的女儿进行在线视频交流,下列工具中不适合...的是A.QQ B.MSN C.BLOG(博客) D.OICQ14.下列软件中,属于应用软件的是A.DOS B.Windows C.Unix D.Excel15.下列算法流程图符号中,表示输入输出符号的是16.许多手机提供了语音拨号功能,这应用了人工智能中的A.语音识别技术 B.手写输入技术C.问题求解技术 D.自动定理证明技术17.在关系型数据库中,表中的列称为A.表 8.字段 C.记录 D.档案18.宝强同学将下载的资料分门别类地保存到计算机的相应文件夹中,他应用的信息资源管理方式是A.手工管理 B.文件管理 C.卡片管理 D.数据库管理19.在使用因特网过程中,下列做法不可取...的是A.加强自我保护意识,避免网络陷阱B.远离不健康网站,警惕信息污染C.加强自我约束.自觉遵守网络规则和礼仪D.引用他人信息作品.不用注明信息来源20.在防范计算机病毒过程中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、设 T 是一棵满二叉树,编写一个将 T 的先序遍历序列转换为后序遍历序列的递归算法。 3、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表 头指针为 head。 二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表 指针。分析你的算法的时、空复杂度。 4、在有向图 G 中,如果 r 到 G 中的每个结点都有路径可达,则称结点 r 为 G 的根结点。编写 一个算法完成下列功能: (1) .建立有向图 G 的邻接表存储结构; (2) .判断有向图 G 是否有根,若有,则打印出所有根结点的值。 5、 由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树, 下面程序的作用是实现由 已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序 遍历序列,请写出程序所缺的语句。 #define MAX 100 typedef struct Node {char info; struct Node *llink, *rlink; }TNODE; char pred[MAX],inod[MAX]; main(int argc,int **argv) { TNODE *root; if(argc<3) exit 0; strcpy(pred,argv[1]); strcpy(inod,argv[2]); root=restore(pred,inod,strlen(pred)); postorder(root); } TNODE *restore(char *ppos,char *ipos,int n) { TNODE *ptr; char *rpos; if(n<=0) return NULL; ptr->info=(1)_______; for((2)_______ ; rpos<ipos+n;rpos++) if(*rpos==*ppos) break; k=(3)_______; ptr->llink=restore(ppos+1, (4)_______,k ); ptr->rlink=restore ((5)_______+k,rpos+1,n-1-k); return ptr; } postorder(TNODE*ptr) { if(ptr=NULL) return; postorder(ptr->llink); postorder(ptr->rlink); } int k;
if(i==start) printf(“\n” ); else Print(i,start);break;}//if
{num=0; visited[1..n]=0; dfs(i); } }// JudgeRoot 算 法 中 打 印 根 时, 输 出 顶 点在 邻 接 表 中的 序 号 ( 下标 ) , 若 要 输 出 顶 点 信息 , 可使 用 g[i].vertex 。
1、若第 n 件物品能放入背包,则问题变为能否再从 n-1 件物品中选出若干件放入背包(这时 背包可放入物品的重量变为 s-w[n]) 。若第 n 件物品不能放入背包,则考虑从 n-1 件物品选 若干件放入背包(这时背包可放入物品仍为 s) 。若最终 s=0,则有一解;否则,若 s<0 或虽然 s>0 但物品数 n<1,则无解。 (1)s-w[n],n-1 //Knap(s-w[n],n-1)=true (2)s,n-1 // Knap←Knap(s,n-1)
12、本题应使用深度优先遍历,从主调函数进入 dfs(v) 时 ,开始记数,若退出 dfs()前,已 访问完有向图的全部顶点(设为 n 个) ,则有向图有根,v 为根结点。将 n 个顶点从 1 到 n 编 号,各调用一次 dfs()过程,就可以求出全部的根结点。题中有向图的邻接表存储结构、记 顶点个数的变量、以及访问标记数组等均设计为全局变量。建立有向图 g 的邻接表存储结构 参见上面第 2 题,这里只给出判断有向图是否有根的算法。 int num=0, visited[]=0 //num 记访问顶点个数 ,访问数组 visited 初始化。 const n= 用户定义的顶点数 ; AdjList g ; //用邻接表作存储结构的有向图 g。 void dfs(v) {visited [v]=1; num++; //访问的顶点数+1 if (num==n) {printf( “%d 是有向图的根。\n ”,v); num=0;}//if p=g[v].firstarc; while (p) {if (visied[p->adjvex]==0) dfs (p->adjvex); p=p->next;} //while visited[v]=0; num--; //恢复顶点 v }//dfs void JudgeRoot() //判断有向图是否有根,有根则输出之。 {static int i ; for (i=1;i<=n;i++ ) //从每个顶点出发,调用 dfs() 各一次。 {num=0; visited[1..n]=0; dfs(i); } }// JudgeRoot 算 法 中 打 印 根 时, 输 出 顶 点在 邻 接 表 中的 序 号 ( 下标 ) , 若 要 输 出 顶 点 信息 , 可使 用 g[i].vertex 。
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; } 14、假设 K1,„,Kn 是 n 个关键词,试解答: 试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为 K1 ,K2 ,„,Kn 时,用算法建立一棵以 LLINK / RLINK 链接表示的二叉查找树。 15、二部图(bipartite graph) G=(V,E)是一个能将其结点集 V 分为两不相交子集 V 1 和 V2=V-V1 的无向图,使得:V1 中的任何两个结点在图 G 中均不相邻,V2 中的任何结点在图 G 中也均不相邻。 (1) .请各举一个结点个数为 5 的二部图和非二部图的例子。 (2) . 请用 C 或 PASCAL 编写一个函数 BIPARTITE 判断一个连通无向图 G 是否是二部图, 并分 析程序的时间复杂度。设 G 用二维数组 A 来表示,大小为 n*n(n 为结点个数) 。请在程序中 加必要的注释。若有必要可直接利用堆栈或队列操作。 【
到,若 dfs(v)结束前出现顶点 u 到 v 的回边,则图中必有包含顶点 v 和 u 的回路。对应程 序中 v 的状态为 1,而 u 是正访问的顶点,若我们找出 u 的下一邻接点的状态为 1,就可以输 出回路了。 void Print(int v,int start ) //输出从顶点 start 开始的回路。 if(g[v][i]!=0 && visited[i]==1 ) {printf(“%d ”,v); }//Print void dfs(int v) {visited[v]=1; for(j=1;j<=n;j++ ) if (g[v][j]!=0) // 存在边(v,j) if (visited[j]!=1) {if (!visited[j]) dfs(j); }//if else {cycle=1; Print(j,j);} visited[v]=2; }//dfs void find_cycle() //判断是否有回路,有则输出邻接矩阵。visited 数组为全局变量。 {for (i=1;i<=n;i++) visited[i]=0; for (i=1;i<=n;i++ ) if (!visited[i]) dfs(i); }//find_cycle 10、 编写一个过程, 对一个 n×n 矩阵, 通过行变换, 使其每行元素的平均值按递增顺序排列。 11、本题应使用深度优先遍历,从主调函数进入 dfs(v) 时 ,开始记数,若退出 dfs()前,已 访问完有向图的全部顶点(设为 n 个) ,则有向图有根,v 为根结点。将 n 个顶点从 1 到 n 编 号,各调用一次 dfs()过程,就可以求出全部的根结点。题中有向图的邻接表存储结构、记 顶点个数的变量、以及访问标记数组等均设计为全局变量。建立有向图 g 的邻接表存储结构 参见上面第 2 题,这里只给出判断有向图是否有根的算法。 int num=0, visited[]=0 //num 记访问顶点个数 ,访问数组 visited 初始化。 const n= 用户定义的顶点数 ; AdjList g ; //用邻接表作存储结构的有向图 g。 void dfs(v) {visited [v]=1; num++; //访问的顶点数+1 if (num==n) {printf( “%d 是有向图的根。\n ”,v); num=0;}//if p=g[v].firstarc; while (p) {if (visied[p->adjvex]==0) dfs (p->adjvex); p=p->next;} //while visited[v]=0; num--; //恢复顶点 v }//dfs void JudgeRoot() //判断有向图是否有根,有根则输出之。 {static int i ; for (i=1;i<=n;i++ ) //从每个顶点出发,调用 dfs() 各一次。 //若存在边(v,i) ,且顶点 i 的状态为 1。 {for(i=1;i<=n;i++)