2010年数据结构期中考试试卷及答案

合集下载

数据结构期中试题及参考答案

数据结构期中试题及参考答案

}LNode, *LinkList;
阅读算法 f31,并回答问题;
(1)设节点结构为id score next
,成绩链表 A 和 B 如图所示,画
出执行算法 f31(A,B)后节点 A 所指的链表;
A
1 70
2 40
3 90
4 48
5 56
B
2 38
4 65
题 31 图
(2)减速算法 f31 的功能。 Void f31(LinkList A, LinkList B) { LinkList p,q; p = A->next; q = B->next; while (p && q) { if(p->id < q->id) p = p ->next; else if(p->if > q-> id) q =q –>next; else { if (p->score < 60)
I + = j + lt ;
}
}while (i+lt <= ls && j>=0);
Return k;
}

五、算法设计题(本题 14 分) 34.假设线性表采用顺序存储结构,其类型定义如下:
#define ListSize 100 typedef struct{
int data[ListSize]; int length; }SeqList, *Table; 编写算法,将顺序表 L 中所有值为奇数的元素调整到表的前端。
(1)设 n=10,元素
p=8

存储在 sa[p],写出下标 p 的值;
题 3-1 图

数据结构期中考试试题及答案

数据结构期中考试试题及答案

一、单项选择题(本题总分 20分,每题 2分)在每小题列出的四个选项中只有 一个选项是符合题目要求的,请将正确选项前的字母。

1.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( D ) 。

A.顺序表 B.链表 C.索引表 D.散列表采用排除法,顺序表存储位置表示数据元素的顺序关系,跟关键字无法;链表的地址是动态分配的;索引表是 按数据元素的关键字排序所得,它的数据元素是没有规律的2.在长度为 n 的顺序表的第 i(1≤i ≤n+1)个位置上插入一个元素,元素的移动次数为( A ) 。

A.n -i+1B.n -iC.iD.i -1代入计算法,我们知道在 i=n+1 时不需要移动元素3.若一棵二叉树的先序遍历序列为 a,b,c ,则由 abc 三个结点构成的二叉树个数为( B ) 。

A.4B.5C.6D.74.三维数组 A[4][5][6]按行优先存储方法存储在内存中,若每个元素占 2 个存储单元,且数组中第一个元素的存 储地址为 130,则元素 A[3][4][5]的存储地址为(B A.370B .368C .366) 。

D.372Loc(3,4,5)=loc(0,0,0)+(3*5*6+4*6+5)*2=130+119*2=368;5.高度为 h 的二叉树(仅含根结点的二叉树高度为 1)的结点最少是多少( D) 。

A. h+1B. 2hC. 2h -1D. h二叉树性质 26. 将两个各有 n 个元素的有序表归并成一个有序表,其最多的比较次数是( A. nB.n+1 C. 2n-1D. n-17. 已知一算术表达式的中缀形式为 A +B *C -D/E ,后缀形式为 ABC *+DE/-,其前缀形式为( C) 。

A )。

A. -+A*BC/DE C. -+*ABC/DEB. –A+B*CD/E D. –A+B*C/DE根据中缀和后缀表达式可画出表达树如下:- + /A* D EBC故前缀表达式为:-+A*BC/DE数据结构期中考试8.下面图示的顺序存储结构表示的二叉树是( A )。

2010吉林省数据结构试题及答案

2010吉林省数据结构试题及答案
C)p=p->next->next; D) p->next=p;
19、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。
A)13 B)33 C)18 D)40
A) 存储密度大 B) 插入运算方便
C)删除运算方便 D)可方便地用于各种逻辑结构的存储表示
36、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
9、下列序列中,执行第一趟快速排序后得到的序列是( 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]
10、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
31、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;
A) 5,4,3,2,1,6 B) 2,3,5,6,1,4
C) 3,2,5,4,1,6 D) 1,4,6,5,2,3
18、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;

《数据结构》期中题库及答案

《数据结构》期中题库及答案

一、判断题:1、线性表的逻辑顺序与物理顺序总是一致的。

( )2、线性表的顺序存储表示优于链式存储表示。

( )3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。

( )4、二维数组是其数组元素为线性表的线性表。

( )5、每种数据结构都应具备三种基本运算:插入、删除和搜索。

( )6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。

( )7、线性表中的每个结点最多只有一个前驱和一个后继。

()8、线性的数据结构可以顺序存储,也可以链接存储。

非线性的数据结构只能链接存储。

()9、栈和队列逻辑上都是线性表。

()10、单链表从任何一个结点出发,都能访问到所有结点()11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。

()12、快速排序是排序算法中最快的一种。

()13、多维数组是向量的推广。

()14、一般树和二叉树的结点数目都可以为0。

()15、直接选择排序是一种不稳定的排序方法。

()16、98、对一个堆按层次遍历,不一定能得到一个有序序列。

()17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。

()18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。

()19、堆栈在数据中的存储原则是先进先出。

()20、队列在数据中的存储原则是后进先出。

()21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。

()22、哈夫曼树一定是满二叉树。

()23、程序是用计算机语言表述的算法。

()24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。

()25、用一组地址连续的存储单元存放的元素一定构成线性表。

()26、堆栈、队列和数组的逻辑结构都是线性表结构。

()27、给定一组权值,可以唯一构造出一棵哈夫曼树。

()28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。

2010年数据结构期中考试试卷及答案

2010年数据结构期中考试试卷及答案

2010年数据结构期中考试试卷及答案《数据结构》期中试卷(2009级) 2010-2011学年第⼀学期姓名:学号:成绩:⼀、选择题:(每⼩题2分,共20分)1.有六个元素6,5,4,3,2,1 的顺序进栈,下列哪⼀个不是合法的出栈序列?()A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 62.在⼀个有125个元素的顺序表中插⼊⼀个新元素并保持原来顺序不变,平均要移动()个元素。

A.8 B. 62.5 C. 62 D. 73. 已知⼴义表A=((a,b,c),(d,e,f),(h,(i,j)),g),从A表中取出原⼦项e的运算是:( )A.head(tail(A))B.head(tail(tail(A)))C.head(head(tail(tail(A))))D.head(tail(head(tail(A))))4.循环队列存储在数组A[0..m]中,设front和rear分别为队列的头指针和尾指针,则⼊队时的操作为()。

A. front=( front +1) mod (m+1)B. rear=(rear+1) mod (m+1)C. front=( front +1) mod mD. rear=(rear+1) mod m5. 在双向循环链表中,在p指针所指向的结点前插⼊⼀个指针q所指向的新结点,其修改指针的操作是( ) (假设双向循环链表的结点结构为(llink,data,rlink)。

A.p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=q;B.p->llink=q;p->llink->rlink=q ;q->rlink= p;q->llink=p->llink;C.q->rlink=p;q->llink=p->llink;p->llink->rlink=q; p->llink=q;D.q->llink=p->llink;q->rlink=p;p->llink=q;p->llink=q;6. ⼀棵完全⼆叉树上有1001个结点,其中叶⼦结点的个数是()。

数据结构期中试卷2009~2010(B5)

数据结构期中试卷2009~2010(B5)

数计系08级网工《数据结构》期中考试题(2009-2010学年度上学期)试卷类别:闭卷考试时间:120分钟班级座号姓名一、选择题(共20分,每题2分)1.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2.在下面的程序段中,对x的赋值语句的频度为()FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)3.有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?()A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6 4.对于栈操作数据的原则是()。

A. 先进先出B. 后进先出C. 后进后出D. 不分顺序5.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。

A. O(0)B. O(1)C. O(n)D. O(n2)6.串的长度是指()A .串中所含不同字母的个数B .串中所含字符的个数C .串中所含不同字符的个数D .串中所含非空格字符的个数7.在一个以 h 为头的单循环链中,p 指针指向链尾的条件是()A. p->next=hB. p->next=NULLC. p->next=hD. p->data=-18.判定一个循环队列Q (存放元素的位置为0~MAXQSIZE-1)队满的条件是( )A .Q.front==Q.rearB .Q.front==(Q.rear+1)%MAXQSIZEC .Q.front+1==Q.rearD .Q.rear==(Q.front+1)%MAXQSIZE9.在C 语言中,将一个A[15][15]的下三角矩阵,按行优先存入一维数组B[120]中,A 中元素A[6][5]在B 数组中的位置k 为( )A .19B .26C .21D .1510.已知广义表L=((x,y,z ),a ,(u ,t ,w )),从L 表中取出原子项t 的运算是( )。

数据结构与算法期中考试卷(含答案)

数据结构与算法期中考试卷(含答案)

数据结构与算法期中考试卷(含答案)⽟林师范学院期中课程考试试卷(2010——2011学年度第⼀学期)命题教师:刘恒命题教师所在系:数计系课程名称:数据结构与算法考试专业:信计考试年级:09级⼀、单项选择题(每题2分,共30分,把正确答案填⼊表格中) 1、在数据结构中,从逻辑上可以把数据结构分成( C )。

A 、动态结构和静态结构B 、紧凑结构和⾮紧凑结构C 、线性结构和⾮线性结构D 、逻辑结构和存储结构 2、结构中的数据元素之间存在⼀个对多个的关系,称为(B )结构。

A 、线性 B 、树形 C 、图状 D 、⽹状 3、以下关于线性表的说法不正确的是(C )。

A 、线性表中的数据元素可以是数字、字符、记录等不同类型。

B 、线性表中包含的数据元素个数不是任意的。

C 、线性表中的每个结点都有且只有⼀个直接前驱和直接后继。

D 、存在这样的线性表:表中各结点都没有直接前驱和直接后继。

4、关于单链表的说法,请选出不正确的⼀项( C)。

A 、逻辑相邻、物理不⼀定相邻B 、不能随机存取C 、插⼊与删除需移动⼤量元素D 、表容量易于扩充 5、关于顺序表的说法,请选出不正确的⼀项(D )。

A 、逻辑相邻、物理相邻 B 、可实现随机存取 C 、存储空间使⽤紧凑 D 、表容量易于扩充6、设N 为正整数,试确定下列程序段中前置以记号@语句的频度为(A )。

x=91;y=100;while(y>0){@if(x>100){x-=10;y--;} else x++; } A 、1100 B 、 9100 C 、110 D 、 9107、在顺序表中删除⼀个元素,平均需要移动( C)元素,设表长为n 。

A、n/2-1 B 、n/2+1C 、n/2D 、(n+1)/28、对单链表执⾏下列程序段,请选出正确的⼀项( A)。

T=P;While(T->next!=NULL ){T —>data=T —>data*2;T=T —>next;} A 、R->data=4 B 、R->data=8C 、H->data=4D 、Q->data=79、若⼀个栈的输⼊序列是1,2,3,┅,n ,输出序列的第⼀个元素是n,则第k 个输出元素是( C)。

2010年春季期中考试数据结构试卷

2010年春季期中考试数据结构试卷

2010年春季学期计算机科学与技术、软件工程、网络工程专业《数据结构》期中考试卷面总分:100分答题时间:120分钟专业年级班级姓名学号说明:一、二题的答案必须写在以下答题卡上,写在别处不得分。

第二题答题卡:一、单项选择题(本大题共15小题,每小题2分,共30分答案写在答题卡上)1、算法分析的目的是()A、找出数据结构的合理性B、研究算法中的输入和输出的关系C、分析算法的效率以求改进D、分析算法的易懂性和文档特点2.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用链接存储,不必占用一片连续的存储单元。

C.线性表采用顺序存储,便于进行插入和删除操作。

D.线性表采用链接存储,便于插入和删除操作。

3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

A.带头结点的双循环链表 B.双链表C.顺序表 D.单循环链表4、单链表中,增加一个头结点的目的是为了( )。

A.使单链表至少有一个结点 B.标识表结点中首结点的位置C.方便运算的实现 D.说明单链表是线性表的链式存储5、设栈的输入序列是1,2,3,4,则()不可能是其出栈序列。

A. 1,2,4,3B. 2,1,3,4C. 4,3,1,2D. 1,4,3,26、中缀表达式(A+B)*(C-D)/(E-F*G)的后缀表达式是_____;A. A+B*C-D/E-F*GB. AB+CD-*EFG*-/C. AB+C*D-E/F-G*D. ABCDEFG+*-/-*7、设栈S和队列Q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈S。

若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b,d,c,f,e,a,g,则栈S的容量至少是A. 1B. 3C. 2D. 48、循环队列存储在数组A[0..m]中,则入队时的操作为( )。

A. rear=(rear+1) % (m-1)B. rear=(rear+1) % (m+1)C. rear=(rear+1) % mD. rear=rear+19、下面关于串的的叙述中,哪一个是不正确的?()A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储10、串是一种特殊的线性表,下面哪个叙述体现了这种特殊性?A. 可以顺序存储B. 数据元素是一个字符C. 数据元素可以是多个字符D. 可以链接存储11、对矩阵压缩存储是为了()。

数据结构期中测试题答案

数据结构期中测试题答案

《数据结构》期中测试班级:姓名:学号:一、填空题:1、在数据结构中,从逻辑上可以把数据结构分为集合、线性结构、树形结构和图状结构,其中树形结构和图状结构合称为非线性结构。

数据结构被形式地定义为二元组(D,S),其中D是数据元素的有限集合,S是D上关系的有限集合。

2、算法的五个重要特性是有穷性、确定性、可行性、输入和输出。

3、一个顺序表第一个元素的存储地址是100,每个元素的长度为3,则第6个元素的地址是115。

在顺序表中插入或删除一个元素,需要平均移动(n+1)/2个元素,具体移动的元素个数与插入或删除元素的位置有关。

顺序表中逻辑上相邻的元素的物理位置相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

单链表中,除了首元结点外,任一结点的存储位置由其前驱结点的指针域指示。

在单链表中设置头结点的作用是使第一个结点与其他结点的操作统一。

4、从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(n+1)/2个结点。

在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是O(n)。

给定有n个元素的线性表,建立一个有序单链表的时间复杂度是O(n2)。

5、已知L是无表头结点的非空单链表,且指针p所指结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

在p所指结点后插入s所指结点:4、1。

在p所指结点前插入s所指结点:7、11、8、4、1。

在表首插入s所指结点:5、12。

在表尾插入s所指结点:11、9、1、6。

1)p->next=s;2)p->next=p->next->next;3)p->next=s->next;4)s->next=p->next;5)s->next=L;6)s->next=NULL;7)q=p;8)while(p->next!=q) p=p->next;9)while(p->next!=NULL) p=p->next;10)p=q;11)p=L;12)L=s;13)L=p;6、已知指针p所指结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。

数据结构真题及答案(2010)

数据结构真题及答案(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年期中考试答案与解析

2010年期中考试答案与解析
第1道算法设计题 存储结构
typedef struct DulNode{ ElemType data; //数据域 数据域
struct DulNode *pre,*next; //指针域 指针域 unsigned int freq; //频度域 频度域
}DulNode,*DulLinkList;
第1道算法设计题
第3题
• 两个n阶对称矩阵(下标均从0到n-1,元素为整型)以行为主压缩存储其 下三角元素在一维数组A、B中(下标从0开始),编写计算对称矩阵相 乘的算法,并将乘积的结果存储在二维数组C中。 int A[n*(n+1)/2], B[n*(n+1)/2], C[n][n]; void mult(A,B,C,n){ int i,j,k, t1,t2,s; for (i=0; i<n ; i++) for(j=0; j<n; j++) { s=0; for(k=0; k<n; k++) { if(i>=k) t1=i*(i+1)/2+k; else t1=k*(k+1)/2+i; if(k>=j) t2=k*(k+1)/2+j; else t2=j*(j+1)/2+k; s=s+A[t1]*B[t2]; } C[i][j]=s; } }
第2题
void preorder(elemtype bt[], int n) {int root, top=-1; int stack[max]; root=1; while(root<=n||top>-1) { while(root<=n) { printf(bt[root]); top++; stack[top]=root; root=2*root; } if (top>-1){ root=stack[top]*2+1; top--; } } }

2010-2011(2)数据结构B卷及答案

2010-2011(2)数据结构B卷及答案

安徽大学2010—2011学年第2学期《 数据结构 》考试试卷(B 卷) (闭卷 时间120分钟)考场登记表序号一、填空题(每小题1.5分,共15分) 1.含有36个元素的有序表,进行二分查找时的判定树的深度为 6 。

2.在一个无向图中,所有顶点的度数之和等于所有边数的 2 倍。

3. 由带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为 44 。

4.由a ,b ,c 三个结点构成的二叉树,共有 5 种不同形态。

5.二维数组A[0‥5][5‥10]以行序为主序存储,每个元素占4个存储单元,且A[0][5]的存储地址是1000,则A[3][9]的地址是 1088 。

6.若串s=''soft ,则其子串个数是 11 。

7. 设循环队列的空间大小为M ,入队时修改队尾指针rear 的语句为 rear=(rear+1)%M 。

8.在顺序存储结构的线性表中,插入或删除一个数据元素大约需移动表中 一半 元素。

9.下列程序段的时间复杂度是 O(m*n) 。

for (i=0;i<n;i++) for (j=0;j<m;j++) A[i][j]+=5;10. 在数据结构中,与所使用的计算机无关的是数据的 逻辑 结构。

二、单项选择题(每小题2分,共20分)1. 数据结构可以用二元组来表示,它包括( A )集合D 和定义在D 上的( C )集合R 。

A 、数据元素B 、存储结构C 、元素之间的关系D 、逻辑结构2. 已知L 是一个不带头结点的单链表,p 指向其中的一个结点,选择合适的语句实现在院/系 年级 专业 姓名 学号答 题 勿 超 装 订 线 ------------------------------装---------------------------------------------订----------------------------------------线----------------------------------------p结点的后面插入一个结点s的操作(B)。

江西理工大学数据结构试卷(2010级B卷)16K - 答案

江西理工大学数据结构试卷(2010级B卷)16K - 答案

江 西 理 工 大 学 考 试 试 卷试卷编号:1213010547 -B一、 填空题(共38分)1、数据结构按逻辑结构可分为两大类,它们分别是 线性结构 和 非线性结构 。

(4分)2、在n 个元素的顺序表中插入一个元素,需要最多移动 n 元素,具体移动的元素个数与插入的元素的位子 有关。

(4分)3、从循环队列中插入一个元素时,其操作是先 插入元素 ,后 移动队首指针 。

(4分)4、设S=”h:/美的Mary.doc”,则strlen(s)= 15 , “的”的字符定位的位置为 6 。

(4分)5、一棵深度为4的完全二叉树最少有 7 个分支结点和最少有 8 个叶子。

(4分)6、由下图中的二叉树可以得出其遍历序列:其中先根遍历序列为: ABDGCHKELIFJ 、中根遍历序列为: BCGDAEKHILFJ 、后根遍历序列为: CGDBEKIJFLHA 。

(6分)7、n 个顶点e 条边的图采用邻接表存储,广度优先遍历算班级 学号 姓名法的时间复杂度为O(n+e) ;若采用邻接表存储,该算法的时间复杂度为O(n2) 。

(4分)8、若一个堆栈的输入序列是1,2, …,m-1,m,则输出序列的最后一个元素是1 ,则第i个输出元素是:m-i+1 。

(4分)9、用邻接矩阵存储包含30个顶点和35条边的有向图,则该邻接矩阵中的元素个数为900 ,零元素个数为865 。

(4分)二、应用题(32分)1、若一棵度为m的树中有n(1)个度为1的节点,n(2)个度为2的节点,n(3)个度为3的节点,…,n(m)个度为m的节点,问该树有多少个叶节点?(9分)答:每个度为1的节点有1个子节点,即每个该类节点有1条边连接子节点;每个度为2的节点有2个子节点,即每个该类节点有2条边连接子节点;……;每个度为m的节点有m个子节点,即每个该类节点有m条边连接子节点;每个度为0的节点(叶节点) 有0个子节点,即每个该类节点有0条边连接子节点;设叶节点的个数为n(0),因此该树的边数为:n(1)+2n(2)+…+m*n(m)树中仅有1个根节点,除根节点外,树中每个节点有且仅有1条边与其父节点相连。

全国2010年10月自考数据结构真题及答案

全国2010年10月自考数据结构真题及答案

请画出该二叉树对应的森林。 29.请回答下列问题: (1)英文缩写DAG的中文含义是什么? (2)请给出下面DAG图的全部拓扑排序。
四、算法阅读题(本大题共4小题,每小题5分,共20分) 30.已知线性表(a1,a2,a3...,an)按顺序存放在数组a中,每个元素均为整数,下列程序的功能是将所有
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 俱乐进入俱乐部
20.用5个权值{3, 2,4,5,1}构造的哈夫曼(Huffman)树的带权路径长度是___________。 21.若无向图G中有n个顶点m条边,采用邻接矩阵存储,则该矩阵中非0元素的个数为___________。 22.影响排序效率的两个因素是关键字的___________次数和记录的移动次数。 23.对任一m阶的B树,每个结点中最多包含___________个关键字。 24.若两个关键字通过散列函数映射到同一个散列地址,这种现象称为___________。
Info otherinfo; }SeqList; void InsertSort(SeqList R[],int n)
{/* 待排序列保存在R[1..n]中*/ SeqList x; int i,j,k,lo,hi,mi; for (i=2;i<=n;i++) { (1) lo=1; hi=i-l; while { mi=(lo+hi)/2; if ( (2) ) break; hi=mi-l; (lo<=hi) ;
15.若需高效地查询多关键字文件,可以采用的文件组织方式为( A.顺序文件 C.散列文件 B.索引文件 D.倒排文件
)
二、填空题(本大题共10小题,每小题2分,共20分) 请每小题的空格中填上正确答案。错填、不填均无分。 16.下面程序段的时间复杂度为___________。 sum=1; for(i=0;sum<n;i++) sum+=1; 17.已知链表结点定义如下: typedef struct node{

数据结构_期中试卷(含答案)

数据结构_期中试卷(含答案)

一、选择题(每小题 1分,共10分)1、队列是插入和删除受限的线性表,其删除操作是在线性表的(1)进行。

A.表头 B.表尾 C.任意位置 D.指定位置2、下述哪一条是顺序存储结构的优点(2)。

A.存储密度大 B.插入运算方便C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示3、设有一个栈,元素的进栈次序为A, B, C, D, E,下列哪个是不可能的出栈序列(3)。

A.A, B, C, D, E B.B, C, D, E, AC.E, A, B, C, D D.E, D, C, B, A4、若二叉树的根结点所在的层次为第1层,则该二叉树的第k层上至多有(4)个结点。

2k B.2k C.2k-1 D.2k+1A. 15、设单链表中指针p指向结点m,若要删除m的后继结点(假设该后继结点存在),则需修改指针的操作为(5)。

A.p->next=p->next->next; B.p=p->next;C.p=p->next->next; D.p->next=p;6、下面程序段的时间复杂度为(6)。

for(int i=0; i<m; i++)for(int j=0; j<n; j++) a[i][j] = i*j;A.O(m2) B.O(n2) C.O(m+n) D. O(m*n)7、非空的循环单链表head的尾结点指针p满足(7)。

A.p==NULL B.p== head C.p->next==head D.p->next==NULL8、已知二维数组A[0..9,0..9]中,元素a[2][0]的地址为560,每个元素占4个字节,则元素a[1][0]的地址为(8)。

A. 518B. 520C. 522D. 5249、在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为(9)。

A.rear%n= = front B.(front+l)%n= = rearC.rear%n -1= = front D.(rear+l)%n= = front10、假设在一棵二叉树中,度为2的结点数为15,度为1的结点数为10个,则该二叉树的分支总数为(10)个。

2010年云南省数据结构试题及答案试题及答案

2010年云南省数据结构试题及答案试题及答案
A.top=top+1;V[top]=x B.V[top]=x;top=top+1
C.top=top一1;V[mp]=x D.V[top]=x;top=top—l
50、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
4、在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
5、不带头结点的单链表head为空的判定条件是 A 。
A.head == NULL B head->next ==NULL
A.单链表 B.双链表 C.单循环链表 D. 顺序表
13、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
29、在二维数组a[9][10]中:每个数组元素占用3个存储空间,从首地址SA开始按行优先
连续存放,则元素a[8][5]的起始地址是
A.SA+141 B.SA+144 C.SA+222 D.SA+255
41、栈采用不同的存储方式时,下列关于出栈过程的叙述中,正确的是
A.顺序栈需要判定栈空,链栈也需要判定
B.顺序栈需要判定栈空,而链栈不需要判定
C.顺序栈不需要判定栈空,而链栈需要判定
D.顺序栈不需要判定栈空,链栈也不需要判定

《数据结构》期中试题(有答案)

《数据结构》期中试题(有答案)

(1)
( 3)(四棵树)
A
A
A
B
D
B
D
B C
CE
F
CE
F
F
G
I
G
I
G
H
H
H
(2)后序序列: CBEHGIFDA 体现到图上便可
D E
I
得分 评卷人
四、阅读算法(每小题 5 分,共 25 分) 1. void AE(Stack& S) {
InitStack(S); Push(S,3); Push(S,4); int x=Pop(S)+2*Pop(S); Push(S,x); int i,a[5]={1,5,8,12,15}; for(i=0;i<5;i++) Push(S,2*a[i]); while(!StackEmpty(S)) cout<<Pop(S)<<' '; } 该算法被调用后得到的输出结果为:
14
--
0
0
0
15
--
0
0
0
4
8
10
0
0
5
14
12
0
0
6
23
13
0
0
7
3
9
0
0
8
11
11
0
0
9
8
11
1
7
10
15
12
3
4
11
19
13
8
9
12
29
14
5
10
13
42
15
6

10级数据结构期中考试试题

10级数据结构期中考试试题
一、单项选择题(共20题,每题2分,共40分) 1、数据的运算定义在数据的逻辑结构上,只有确定了( 实现这些运算。 A、数据对象 B、逻辑结构 C、存储结构 D、数据操作 2、基本的逻辑结构包括( )。 A、树型结构、图状结构、线性结构和非线性结构 B、集合结构、线性结构、树型结构和非线性结构 C、集合结构、树型结构、图状结构和非线性结构 D、集合结构、线性结构、树型结构和图状结构
12、对于一个头指针为headபைடு நூலகம்带头结点的单链表,判定该表为空表的条 件是( )。 A、head==NULL B、head->next==NULL C、head->next==head D、head!=NULL 13、在双向链表指针p指向的结点前插入一个指针q指向的结点操作是( )。 A、p->prior=q;q->next=p;p->prior->next=q;q->prior=q; B、p->prior=q;p->prior->next=q;q->next=p;q->Prior=p->prior; C、q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q; D、q->prior=p->prior;q->next=q;p->prior=q;p->prior=q; 14、链表不具有的特点是( )。 A、插入、删除不需要移动元素 B、可随机访问任一元素 C、不必事先估计存储空间 D、所需空间与线性表长度成正比 15、当实际问题具有后进先出的特性且线性表有确定的最大长度,表长 变化不大时应选择( )作为线性表的存储结构。 A、顺序栈 B、链栈 C、顺序队列 D、链队列 16、若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则 第j个输出元素是( )。 A、i-j-1 B、i-j C、j-i+1 D、不确定 17、有六个元素按6,5,4,3,2,1 的顺序进栈,下列哪一个不是合 法的出栈序列( )。 A、5 4 3 6 1 2 B、4 5 3 1 2 6 C、3 4 6 5 2 1 D、2 3 4 1 5 6 18、用链接方式存储的队列,在进行删除运算时( A、仅修改头指针 B、仅修改尾指针 C、头、尾指针都要修改 D、头、尾指针可能都要修改 )。

《数据结构》期中测试答案

《数据结构》期中测试答案

数据结构2010年下学期 考试时间:100分钟 考试形式:闭卷(所有答案写在答题纸上,请在答题纸上注明班级、学号) 一、概念题(每题 2 分,共 24分) 1、从逻辑角度看,数据可归结为四类基本结构:集合、线性结构、 树状结构 和 图状结构 。

2、算法效率度量分析的两个基本指标是 时间复杂度 和 空间复杂度 。

前者是基于算法执行时间的度量,后者是基于算法所需存储空间的度量。

3、线性表顺序存储的特点是:表中相邻的元素a i 和a i+1所对应的存储地址 LOC (a i )和LOC(a i+1)也是____相邻_____的。

设线性表a 的起始地址为LOC(a 1),每个数组元素所占用的存储单元数为b ,则表中第i(1≤i ≤n)个元素a i 的存储起始地址LOC(a i )可用如下公式得到__ LOC(a i )_ = LOC(a 1)+(i-1)*b ______。

4、在线性表的存储结构中,顺序表是一个可 随机存取 存取的存储结构,单链表则是一个 顺序存取 存取的存储结构。

5、设单链表的结点数据类型定义和指针变量说明如下 #define DATATYPE2 char typedef struct node { DATATYPE2 data; struct node *next; } LINKLIST; LINKLIST *p,*q,*s; 在一个单链表中,已知q 所指向结点是p 所指向结点的直接前趋结点。

若欲在q 结点和p 结点之间插入一个s 所指向的结点,则可写 q->next=s;s->next=p 6、关于选用顺序表结构或链表结构,在考虑线性表的操作的时间性能时,若线性表上的操作主要是查找、读取而很少做插入和删除操作时,以采用 顺序 表结构为宜。

但是,若线性表需频繁地进行插入和删除操作时,则采用 链表 表结构为宜。

7、如果在待排序的序列中,存在有多个关键字相同的记录,经过排序后,这些具有相同关键字的记录之间的相对次序保持不变,则称这种排序方法是 稳定 的;反之,若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是 不稳定 的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ i = 0; j = n-1;
while (A)
{
while (i < j &&B) i++;
while (i < j &&C) j--;
if (i < j)D;
}
}
3.二叉树以二叉链表的方式存储,设计算法输出二叉树中所有的叶子结点,同时给出每个叶子结点到根结点的路径的长度。

1.C
2.B
3.D
};
B.p->llink=q;p->llink->rlink=q;q->rlink= p;q->llink=p->llink;
C.q->rlink=p;q->llink=p->llink;p->llink->rlink=q; p->llink=q;
D.q->llink=p->llink;q->rlink=p;p->llink=q;p->llink=q;
6.一棵有n(n>0)个结点的满二叉树共有个叶子和非终端结点。
7.有一个100*90的稀疏矩阵(元素类型为整型),非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是。
8.树的后根遍历序列等同于对该树对应的二叉树进行( )遍历的序列。
9.具有256个结点的完全二叉树的深度为______。(假设根结点的深度为0)
1.设二叉树T的存储结构如下:
1 2 3 4 5 6 7 8 9 10
Lchild
0
0
2
3
7
5
8
0
10
1
Data
J
H
F
D
B
A
C
E
G
I
Rchild
0
0
0
9
4
0
0
0
0
0
其中BT为树根结点的指针,其值为Lchild,Rchild分别为结点的左、右孩子指针域,data为结点的数据域。
(l)画出二叉树T的逻辑结构;
7.()队列是一种运算受限的线性表。
8.( )二叉树的先序பைடு நூலகம்列中的最后一个结点一定是叶子结点。
9.( )完全二叉树中,若一个结点没有左孩子,则它必是叶子结点。
10.()两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
四、简答题: (每题5分,共20分)
《数据结构》期中试卷 (2009级) 2010-2011学年第一学期
姓名:学号:成绩:
一、选择题:(每小题2分,共20分)
1.有六个元素6,5,4,3,2,1的顺序进栈,下列哪一个不是合法的出栈序列?()
A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6
(2)画出二叉树的后序线索树。
2. 用下面数据逐步建成堆。要求画出每加入一个关键码后堆的变化。
(25 11 22 34 5 44 76 61 100 3 14 120)
3.已知关键字集合W={11,8,2,3,15,9},以集合中的关键字作为叶子结点的权值而构造哈夫曼树(huffman Tree),画出构造的过程。
WPL(T:BNode *):int;
{ n= 0; WPL1(T,0);
WPL= n
};
void WPL1(T:BNode *; h:int);
{
if ( T !=NULL )
if ( (T->Lchild==NULL) && (T->Rchild==NULL)
) n= n+T->data*h
; else { WPL1(T->Lchild,h+1); WPL1(T->Rchild,h+1) }
10.56

1. F
2. F
3. F
4. T
5. F
6. T
7. T
8.T
9.T
10. T

1.1)A
/
B
/\
C D
/ / \
E F G
/ /
H I
/
J
2)略
2.3 5 14 34 11 22 76 61 100 25 44 120
3.48
/ \
28 20
/ \ / \
15 13 9 11
/ \
5 8
6.一棵完全二叉树上有1001个结点,其中叶子结点的个数是()。
A.250 B.500 C.254 D.以上答案都不对
7.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。
A.CBEFDA B.FEDCBA C.CBEDFA D.不定
8.利用二叉链表存储树时,则根结点的右指针是()。
2.()线性表中每个元素都有一个前驱和一个后继。
3.()广义表的长度就是广义表中的原子个数。
4.()任意一棵二叉树中的结点的度都不大于2。
5.()判断线索二叉树中由P所指结点是叶子结点的条件是(P->Lchild==NULL)&& (P->Rchild==NULL)。
6.()采用三元组表方式对稀疏矩阵进行压缩存储时,三元组表中元素个数与矩阵中非零元素个数相同。
C.head(head(tail(tail(A))))D.head(tail(head(tail(A))))
4.循环队列存储在数组A[0..m]中,设front和rear分别为队列的头指针和尾指针,则入队时的操作为()。
A. front=( front +1) mod (m+1) B. rear=(rear+1) mod (m+1)
2.在一个有125个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。
A.8 B. 62.5 C. 62 D. 7
3.已知广义表A=((a,b,c),(d,e,f),(h,(i,j)),g),从A表中取出原子项e的运算是:( )
A.head(tail(A))B.head(tail(tail(A)))
4.B
5.C
6.D
7.A
8.C
9.D
10.A

1.n(n+1)/2
2.S->link = H; H= S;
3.2n0-1
4.front->link->link==NULL;或front->link->link==rear;
5.O(1);O(n)
6.(n+1)/2;(n-1)/2
7.60
8.中序
9.8
}
2.向一个栈顶指针为H的链栈中插入一个s所指结点时,执行的语句是。
3.如果一棵Huffman树T有n0个叶子结点,那么树T中共有个结点。
4.在带有一个头结点的链队列front中,判定只有一个结点的条件是。
5.对于一个具有n个结点的单链表,在已知p所指向结点后插入一个新结点的时间复杂度是;在给定值为x的结点后插入一个新结点的时间复杂度是。
B.为了能在二叉树中方便的进行插入与删除
C.为了能方便的找到双亲
D.使二叉树的遍历结果唯一
二、填空题:(每小题2分,共20分)
1.下面程序段中划线部分的执行次数为。
int i=0, s=0;
while (++i<=n) {
int p=1;
for (int j=1;j<=i;j++)p*=j;
s=s+p;
1.已知L是带表头结点的单链表(表中元素个数>= 2),P指向某结点(非第一结点),删除P结点的直接前驱语句是:
2.下面的算法是将整型数组A[0..n-1]中的元素划分为两部分,使得左边的所有元素均为奇数,右边的所有元素均为偶数,补充完成A,B,C,D四个空(每处空并非仅有一条语句):
void Partition(int A[ ] )
};
解法2)
WPL(T:BNode *):int;
{
if ( T ==NULL
) WPL= 0
; else if ( (T->Lchild==NULL) && (T->Rchild==NULL)
) WPL= 0
; else WPL= T->data+WPL(T->Lchild+WPL(T->Rchild)
A.指向最左孩子B.指向最右孩子C.空D.非空
9.设有二维数组A[0..9, 0..19],其中每个元素占两个字节,第一个元素的存储地址为100,若按列优先顺序存储,则元素A[6,6]存储地址为( )。
A. 252 B. 132 C. 352 D.232
10.引入二叉线索树的目的是()
A.加快查找结点的前驱或后继的速度
C. front=( front +1) mod m D. rear=(rear+1) mod m
5.在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是( ) (假设双向循环链表的结点结构为(llink,data,rlink)。A.p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=q;
if (tmp->link == NULL) return;
else
{ pre->link =p; delete tmp; }
3.A: i<j;
相关文档
最新文档