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. 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;
相关文档
最新文档