文档库 最新最全的文档下载
当前位置:文档库 › 数据结构样卷2(英文)

数据结构样卷2(英文)

数据结构样卷2(英文)
数据结构样卷2(英文)

重庆大学 数据结构 课程样卷

2

开课学院: 计算机学院 课程号: 18001035 考试日期:

考试方式:

考试时间: 120 分钟

一. Single choice

1. The linear list (a1, a2, ... an), which is in Sequential Storage , when

we delete any node, the average number of moving nodes ( ). A. n B. n/2 C. (n-1)/2 D. (n+1)/2 2. Which is wrong among the following statements ( ).

A. Data element is the basic unit of the data

B. Data element is the smallest unit of the data

C. Data can be composed of a number of data elements

D. Data items can be composed of a number of data elements

3. To insert a data element in a linear structure data conveniently, the

best data structure is ( ).

A. Sequential storage

B. Linked storage

C.Index storage

D. Hash storage

4. If insert a new node into the doubly linked list which the number of

nodes is n, the measurement level of time complexity is ( ).

A.O(1)

B. O(n)

C. O(nlog 2n)

D. O(n 2

)

5. In virtue of as a tree, if we want to find the fifth child of the node

x, as long as finding the first child of x, and then ( ).

A. pointer scans 5 nodes continuously from the c a child’s Brother

linked listshild domain

B. pointer scans 4 nodes continously from the child domain

C. pointer scans 5 nodes continously from the brother domain

D. pointer scans 4 nodes continously from the brother domain 6. The character of Tree structure is: a node can have( )

A. More than one direct pre-trend

B. More than one direct successors

C. More than one pre-trend

D. A successor

7. Assume that there are 13 numbers, they form a Huffman tree, calculate

the number of nodes on this Huffman tree ( ). A. 13 B. 12 C. 26 D. 25

8. A spanning tree of the undirected connected graph is a ( ) which

contains the whole vertices of this connected graph.

A. Minimal connected subgraph

B. Minimal subgraph

C. Significantly connected sub-graph

D. Significantly sub-graph 9. Which is wrong in the following statements ( ).

A. Each vertex is only visited once during the graph traversal.

B. There are two methods, Depth-First Search and Breadth-First Search,

to traverse a graph.

C. Depth-First Search of a graph isn ’t fit to a directed graph

D. Depth-first search of a graph is a recursive process

10. In sequential search algorithm of static table, if we set up a sentry

at the head of a list, the right way to find the element is ( ) A. Looking for the data element from the first element to the back B. Looking for the data element from the second element to the back C. Looking for the data element from the (n+1)th element to the front D. I t is nothing to do with the search for order

11. In order to find the number 85 in an ordered list

(18,20,25,34,48,62,74,85), how many times do we need to compare( ) A.Once B. Twice C. 3 times D. 4 times

12. Assume that the length of Hash table is m=14, Hash function H(key) =

key % 11. There have been 4 nodes in the table, and their addresses are: 4,5,6,7. Other addresses are NULL. In virtue of quadratic probing re-hash to deal with conflict, calculate the address of node whose keyword is 9 ( ).

A. 8

B. 3

C. 5

D. 9

13. Using Quicksort to sort the following four sequences, and choose the

命题人:

组题人:

审题人:

命题时间:

教务处制

学院 专业、班 年级 学号 姓名

公平竞争、诚实守信、严肃考纪、拒绝作弊

线

first element as the benchmark to divide. During the first division,

in the following sequences which need to move the most times ( )

A.70,75,82,90,23,16,10,68

B.70,75,68,23,10,16,90,82

C.82,75,70,16,10,90,68,23

D.23,10,16,70,82,75,68,90

14.There are 10000 elements in a sequence, the best way to get the very smallest 10 elements in the sequence is ( ).

A. Quicksort

B. Heapsort

C. Insertion sort

D. Merge sort

15.If the sequence is almost in order, take compare times of key code and move times of key code into account, the best way to sort is( )

A. Merge sort

B. Insertion sort

C. Straight selection sort

D.

Quicksort

二.Fill the blanks

1.In order to insert a new node s after the node which pointer q points to in a circular doubly linked list, we need to execute the following

statements:

s->prior=q; s->next=q->next; _____________________;

q->next=s;

2.In the doubly linked list, if d is a pointer points to a node in the list, then:

d->next->__________=d->prior->__________=__________;

3.Stack can be considered as an operation restricted linked list ,one end that can insert and remove is called _____________。

4.In threaded binary tree, a node which is pointed by t has no left sub-tree, the necessary and sufficient conditions for is

_____________。

5.Look-up table can be divided into static look-up table and dynamic look-up table, binary tree is belong to_____________。

6.The postorder traversal sequence of a binary tree is gdbehfca, and its inorder traversal sequence is dgbaechf, so the pre-order traversal

sequence is _____________。

7.When sort a set of records(54,38,96,23,15,72,60,45,83) by insertion sort, in order to insert the seventh record 60 into the ordered list,

______times of comparison before finding the insert position.

8.When sorting n elements by bubble sort, the least number of times that we compare is _____________。

9.After inserting a new node in a ordered singly linked list with n nodes, its sequence is still in order, the time complexity is _________。

10.Assume that the order of input elements is :1,2,3,4,5, if we want to get the sequence 43521 at the output of stack S, what we should execute,

using the basic operation of the stack to express, is that push(S,1),

push(S,2), push(S,3), push(S,4),pop(S), _________, _________, pop(S),

pop(S), pop(S).

11.The sort without comparing keywords is _________,

12.If all of a binary tree’s nodes and leaf nodes are 2 degree, we have known that the number of nodes with 2 degree is n, the total number

of this binary tree’s nodes is________

三.Application

1. A tree with degree m has n1nodes whose degree is 1, and n2nodes whose degree is 2,…, n m nodes whose degree is m, how many leaf node on this

tree?

2.The sequence is (32,47,12,8,2,19,30), please establish the initial heap with the smallest element on the heap top.

3.The weight sequence is (1,10,8,5,3,13), what is their corresponding Huffman tree?

4.The following figure is a directed graph, calculate the shortest distance from a to other vertexes using Dijkstra algorithm.

四.Algorithm

1.Fill in the blanks of the algorithm

void BInsertSort (SqList &L)

{

// binary insertion sort for the sequential list L

for ( i=2; i<=L.length; ++i )

{

L.r[0] = L.r[i];

low = 1; high = i-1;

while (__________________)

{

m = __________________;

if (L.r[0].key < L.r[m].key) __________________;

else __________________;

} // while

for ( j=i-1; j>=low; --j ) L.r[j+1] = L.r[j];

__________________ = L.r[0];

}

} // BInsertSort

2.Please write down the results of when executing P(5) and P(6) in the following process.

void P(int n) {

if (n>0){

(n-2); printf(“%d”,n);

}

3.Please explain the function of what algorithm

typedef struct BiTNode{

int data;

Struct BiTNode *lchild;

Struct BiTNode *rchild;

}BiTNode,*BiTree;

int what(BiTree T)

{

if (T==NULL) what=0;

else

if (T->data == 0)

what=1+what(T->lchild)+ what(T->rchild);

else

what=what(T->lchild)+ what(T->rchild);

}

4.Algorithm design

Assume that A=(a1,a2,…a n),B=(b1,b2,…,b m), design a algorithm, merge(LinkList A, LinkList B, LinkList &C) ,to merge A and B to a linked list C using C language, that is:

C=(a1,b1,a2,b2,…,a n,b n,b n+1,…,b m), 当 n<=m

C=(a1,b1,a2,b2,…,a m,b m,a m+1,…,a n)。当 n>m

m and n are not known conditions, table C using the node space of table A and table B.

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

《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 单项选择题1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C 、 1. 对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为 (c )。 (A)、正确性但).可行性(C).健壮性 2 ?设S为C语言的语句,计算机执行下面算法时, for(i=n-1 ; i>=0; i--) for(j=0 ; jvi; j++) (A)、n2(B). O(nlgn) 3?折半查找法适用于( a (D). 输入性 算法的时间复杂度为(d S; (C). O(n) (D). )。 O(n2) (A)、有序顺序表(B)、有序单链表 (C)、有序顺序表和有序单链表都可以 4 .顺序存储结构的优势是( d )。 (A)、利于插入操作(B)、利于删除操作 (C)、利于顺序访问(D)、利于随机访问 5. 深度为k的完全二叉树,其叶子结点必在第 (A)、k-1 ( B)、k (C)、k-1 和 6. 具有60个结点的二叉树,其叶子结点有 (A)、11 ( B)、13 ( C)、48 (D)、无限制 c )层上。 (D)、1 至 k 12个,则度过1 (D)、37 k 的结点数为( 7 .图的Depth-First Search(DFS) 遍历思想实际上是二叉树( 法的推广。 (A)、先序(B)、中序(C)、后序(D)、层序 8.在下列链队列Q中,元素a出队的操作序列为( a )遍历方 front (A )、 (B )、 (C)、 (D )、p=Q.front->next; p->next= Q.front->next; p=Q.front->next; Q.front->next=p->next; p=Q.rear->next; p->next= Q.rear->next; p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于( (A)、除根结点之外的所有结点权值之和(C)、各叶子结点的带权路径长度之和(B) 、 ) 所有结点权值之和 根结点的值 b ■

数据结构考试试题及答案

数据结构 一、单选题 1. 计算机算法指的是(b )。 A.程序B.问题求解步骤的描述C.调度方法D.排序方法 2. 以下数据结构中,(a )个是非线性数据结构。 A.树B.字符串C.队D.栈 3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 4. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(b )。 A.p->next=s;s->next=p->next B.s->next=p->next; p->next=s C.p->next=s;p->next=s->next D.p->next=s->next; p->next=s 5. n个顶点的有向图中,含有向边的数目最多为( d ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d ) A.rear=rear+1 B.rear=(rear+1)mod(m-1) C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 7. 字符串?ababaabab?的next函数为(d ) A.011232232 B.012341234 C.011122334 D. 011234234 8. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为( b )A.9 B.11 C.15 D.不确定 9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。A.BA+141 B.BA+180 C.BA+222 D.BA+225 10. n个顶点的带权无向连通图的最小生成树包含(b )个顶点 A.n-1 B.n C.n/2 D.n+1 11.有关二叉树的下列说法正确的是( b ) A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 12.关键路径是AOE网中( a )。 A.从源点到汇点的最长路径B.从源点到汇点的最短路径 C.最长回路 D.最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径) 13.若查找每个记录的概率相等,则在具有n个记录的连续文件中采用顺序查找查找一个记录,其平均查找长度ASL为(c)。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 14.就平均性能而言,目前最好的内部排序方法是(d ) A.冒泡排序B.希尔排序C.堆排序D.快速排序 15.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(d )A.head(tail(LS)) B.tail (head (LS) C.head(tail(head(tail(LS)))) D.head(tail(tail (head (LS)))) 17.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( a ) A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点后插入一个新结点(1≤i≤n)

数据结构实验题目数据结构实验题目09级

实验一线性表的顺序存储实验 一、实验目的 1、掌握用Visual C++6.0上机调试顺序表的基本方法 2、掌握顺序表的基本操作,插入、删除、查找等算法的实现 二、实验内容 1、顺序表基本操作的实现 [问题描述] 当我们要在顺序表的第i个位置上插入一个元素时,必须先将顺序表中第i个元素之后的所有元素依次后移一个位置,以便腾空一个位置,再把新元素插入到该位置。若是欲删除第i个元素时,也必须把第i个元素之后的所有元素前移一个位置。 [基本要求] 要求生成顺序表时,可以键盘上读取元素,用顺序存储结构实现存储。 实验二单链表实验 一、实验目的 1、掌握用Visual C++6.0上机调试单链表的基本方法 2、掌握单链表的插入、删除、查找、求表长以及有序单链表的合并算法的实现 二、实现内容 1、单链表基本操作的实现 [问题描述]要在带头结点的单链表h中第i个数据元素之前插入一个数据元素x ,首先需要在单链表中寻找到第i-1个结点并用指针p

指示,然后申请一个由指针s 指示的结点空间,并置x为其数据域值,最后修改第i-1个结点,并使x结点的指针指向第i个结点,要在带头结点的单链表h中删除第i个结点,首先要计数寻找到第i个结点并使指针p指向其前驱第i-1个结点,然后删除第i个结点并释放被删除结点空间。 [基本要求]用链式存储结构实现存储 [实现提示]链式存储结构不是随机存储结构,即不能直接取到单链表中某个结点,而要从单链表的头结点开始一个一个地计数寻找。 2、求表长以及有序单链表的合并算法的实现 [问题描述] 假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放归并后的单链表。 [基本要求]用链式存储结构实现存储 实验三栈的实现及应用 一、实验目的 1、掌握顺序栈的类型定义方法。 2、掌握在顺序栈上实现的六种基本算法。 2、掌握顺序栈的简单应用。 二、实验内容

数据结构复习题目和答案

《数据结构-C语言版》 第一章绪论 单项选择题 1.在数据结构中,数据的基本单位是_____ ____。 A. 数据项 B. 数据类型 C. 数据元素 D. 数据变量 2.数据结构中数据元素之间的逻辑关系被称为__ ____。 A. 数据的存储结构 B. 数据的基本操作 C. 程序的算法 D. 数据的逻辑结构3.在数据结构中,与所使用计算机无关的是数据的____ ___。 A. 存储结构 B. 逻辑和物理结构 C. 逻辑结构 D. 物理结构4.在链式存储结构中,数据之间的关系是通过____ ____体现的。 A. 数据在内存的相对位置 B. 指示数据元素的指针 C. 数据的存储地址 D. 指针 5.计算算法的时间复杂度是属于一种____ ___。 A. 事前统计的方法 B. 事前分析估算的方法 C. 事后统计的方法 D. 事后分析估算的方法 6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是____ __。 A. n2 B. nlogn C. n D. logn 7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为____ ___。 A. O(1) B. O(n) C. O(200n) D. O(nlog2n)

CDCBBDD 第二章线性表 单项选择题 1.链表不具有的特点是____ ____。 A. 可随机访问任一元素 B. 插入和删除时不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与线性表的长度正比 2.设顺序表的每个元素占8个存储单元。第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为。 A. 139 B. 140 C. 147 D. 148 3.在线性链表存储结构下,插入操作算法。 A. 需要判断是否表满 B. 需要判断是否表空 C. 不需要判断表满 D. 需要判断是否表空和表满 4.在一个单链表中,若删除p所指结点的后继结点,则执行。 A. p->next = p->next->next; B. p->next = p->next; C. p = p->next->next; D. p = p->next; p->next = p->next->next; 5.将长度为n的单链表接在长度为m的单链表之后的算法时间复杂度为。A. O(n) B. O(1) C. O(m) D. O(m+n) 6.需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是。 A. 单链表 B. 静态链表 C. 线性链表 D. 顺序存储方式ACCABB 填空题 1.在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的_____结点。2.在单链表中,指针p所指结点为最后一个结点的条件是。 3.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。4.在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动元素的个数是。 5.在长度为n的顺序表中插入一个元素的时间复杂度为。 1前驱 2 p->next==NULL

数据结构期末考试试卷样卷

《数据结构》期末考试试卷样卷 成绩________ 一、单项选择题:(每题2分,共30分) 1、以下说法正确的是()。 A. 数据元素是数据的最小单位 B. 数据项是数据的基本单位 C. 数据结构是带有结构的各数据项的集合 D. 一些表面上很不相同的数据可以有相同的逻辑结构 2、与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。 A. 存储结构 B. 存储实现 C. 逻辑结构 D. 运算实现 3、判断一个队列QU(最多元素为m0)为满队的条件是()。 A. QU->rear-QU->front==m0 B. QU->rear-QU->front-1==m0 C. QU->rear==QU->front D. QU->front==QU->rear+1 4、给定n个数据元素,建立对应的有序单链表的时间复杂度是()。 A. O(1) B. O(n) C. O(n2) D. O(nlog2n) 5、一个非空广义表的表头()。 A. 不可能是子表 B. 只能是子表 C. 原子或子表均可 D. 只能是原子 6、设完全二叉树中拥有65 个结点,则其深度为()。 A. 5 B. 6 C. 7 D. 8 7、根据二叉树的(),可以唯一确定该二叉树的形态。 A. 先序和中序序列 B. 先序和后序序列 C. 中序和后序序列 D. 先序和层序序列 8、若广义表A满足Head(A)=Tail(A),则A为()。 A. () B. (()) C. ((),()) D. ((),(),()) 9、下面不正确的说法是()。 (1)在AOE网中,减少任一关键活动上的权值后,整个工期也就相应减小; (2)AOE网工程的工期为关键活动上的权值之和; (3)在关键路径上的活动都是关键活动,而关键活动也必定在关键路径上。 A. (1) B. (2) C. (3) D. (1) 、(2) 10、图的深度优先遍历算法分别类似于二叉树的()。 A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 层序遍历 11、从图的邻接矩阵中,容易确定()。 A. 主对角线的元素全部为1 B. 主对角线的元素不全为0 C. 任意两个顶点之间是否关联 D. 是否为一个连通图 12、顺序查找适用于存储结构为()的线性表。 A. 散列存储 B. 压缩存储 C. 顺序存储或链式存储 D. 索引存储 13、从具有n个结点的二叉排序树中查找一个元素时,最坏情况下的时间复杂度为()。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 14、在关键字随机分布的情况下,用二叉排序树进行查找,其查找长度与()量级相当。 A. 顺序查找 B. 折半查找 C. 分块查找 D. 均不是 15、一组记录的关键字序列为{46,79,56,38,40,84},利用快速排序方法,以第一个记录为基准得到的一次划分是()。 A. 38,40,46,56,79,84 B. 40,38,46,79,56,84 C. 40,38,46,56,79,84 D. 40,38,46,84,56,79 - 1 -

数据结构试卷(五)及答案

数据结构试卷(五) 一、选择题(30分) 1.数据的最小单位是()。 (A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量 2.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。 (A) 40,50,20,95 (B) 15,40,60,20 (C) 15,20,40,45 (D) 45,40,15,20 3.设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为()。 (A) 15,25,35,50,20,40,80,85,36,70 (B) 15,25,35,50,80,20,85,40,70,36 (C) 15,25,35,50,80,85,20,36,40,70 (D) 15,25,35,50,80,20,36,40,70,85 4.函数substr(“DATASTRUCTURE”,5,9)的返回值为()。 (A) “STRUCTURE”(B) “DATA” (C) “ASTRUCTUR”(D) “DATASTRUCTURE” 5.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。 (A) O(log2n) (B) O(1) (C) O(n2) (D) O(n) 6.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为N l,……,度数为m的结点数为Nm,则N0=()。 (A) N l+N2+……+Nm (B) l+N2+2N3+3N4+……+(m-1)Nm (C) N2+2N3+3N4+……+(m-1)Nm (D) 2N l+3N2+……+(m+1)Nm 7.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。 (A) 25 (B) 10 (C) 7 (D) 1 8.设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发可以得到一种深度优先遍历的顶点序列为()。 (A) abedfc (B) acfebd (C) aebdfc (D) aedfcb 9.设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是()。 (A) n-i (B) n-1-i (C) n+1-i (D) 不能确定 10 设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45 为基准而得到一趟快速排序的结果是()。 (A) 40,42,45,55,80,83 (B) 42,40,45,80,85,88 (C) 42,40,45,55,80,85 (D) 42,40,45,85,55,80 二、填空题(共30分) 1.设有一个顺序共享栈S[0:n-1],其中第一个栈项指针top1的初值为-1,第二个栈顶 指针top2的初值为n,则判断共享栈满的条件是____________________。 2.在图的邻接表中用顺序存储结构存储表头结点的优点是____________________。

算法与数据结构试题及答案

数据结构试卷(一) 一、单选题(每题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.696 5.树最适合用来表示( )。 A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 6.二叉树的第k层的结点数最多为( ). A.2k-1 B.2K+1 C.2K-1 D. 2k-1 7.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二 分查找,则查找A[3]的比较序列的下标依次为( ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 8.对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.4 10.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。 A.5 B.6 C.7 D.8 二、填空题(每空1分,共26分) 1.通常从四个方面评价算法的质量:_________、_________、_________和_________。 2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。 3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数 为__________个,树的深度为___________,树的度为_________。 4.后缀算式9 2 3 +- 10 2 / -的值为__________。中缀算式(3+4X)-2Y/3对应的后缀算式 为_______________________________。 5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指 针。在这种存储结构中,n个结点的二叉树共有________个指针域,其中有________个指针域是存放了地址,有________________个指针是空指针。 6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点 分别有_______个和________个。 7.AOV网是一种___________________的图。 8.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有 向完全图中,包含有________条边。 9.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元 素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________。

数据结构与算法 考试样卷

考场: 座位号: 专业名称: 装订线 装订线 装订线 广州大学华软软件学院第 20XX-20XX 学年第 X 学期考试卷 课程代码: SS1005 课程名称: 数据结构与算法 考试时间: 90 分钟 考试形式: 闭卷 试卷类型: A 学分: 4 一、 单项选择题(共15小题,每小题2分,共30分)在每小题列出的 选项中只有一个选项符合题目要求,将正确选项前的字母填写在答题纸上。 1. 数据三种最主要的逻辑结构是树形结构和( )。 A. 线性表、二叉树 B. 线性结构、图状结构 C. 线性表、图 D. 树形结构、堆 2. 以下数据结构中,( )是线性数据结构。 A .树 B .图 C .堆 D .栈 3. 下面关于线性表的叙述中,错误的是哪一个?( ) A .若线性表采用顺序存储结构,则必须占用一片连续的存储单元。 B .若线性表采用顺序存储结构,则便于进行插入和删除操作。 C .若线性表采用链接存储结构,则不必占用一片连续的存储单元。 D .若线性表采用链接存储结构,则便于插入和删除操作。 4. p 是指向单链表头结点的指针,若该链表是空表,下面正确的说法是( )。 A. p = = NULL B. p != NULL C. p->next = =NULL D. p->next = =NULL

5.在指针p指向单链表结点之后插入s所指结点的操作是:()。 A.p->next=s; B.s->next=p->next ;p->next=s; C.s->next=p; D.s->next=p->next; 6.存取数据时采用先进先出的原则的数据结构是()。 A.队列 B.栈 C.字符串 D.线性表 7.假定栈用单链表的存储结构表示,栈的栈顶指针为top,当结点x入栈时执行的 操作为( )。 A.x->next=top; B. top->next=x; top=x; C. top=x; D. x->next=top; top=x; 8.队列的数据出队操作在()进行。 A.队尾位置 B.队头位置 C. 任意位置 D. 中间位置 9.树的度是指()。 A.树的结点数 B.树的后继个数 C. 树中任一结点最大的后继数 D. 以上都不是 10.具有8个叶子结点的二叉树中有()个双支结点。 A.7 B.8 C.9 D.10 11.下面对完全二叉树描述正确的是()。 A.所有层的结点数都必须是满的 B.除最后一层,其它层上的结点数都必须 是满的 C.最后一层的结点数不能是满的 D.以上都不是 12.将100个元素散列到10000个单元的散列表中,则()产生冲突。 A.一定会 B. 一定不会 C. 仍可能会 13.假定利用数组a表示一个栈,用top 保存栈顶位置,top=-1表示栈空,已知栈 中有数据,当元素x进栈时的操作为()。 A.a[--top]=x; B.a[top--]=x; C. a[++top]=x; D. a[top++]=x; 14.n个顶点的无向图,至多有()条边。 A.n-l B.n(n-1)/2 C.n(n+l) D.2n 15.无向图G=(V,E),其中:V={a,b,c,d }, E={(a,b), (a,c),(b,d),(c,d)},对该 图进行广度优先遍历,得到的顶点序列正确的是()。 A.a,c,b,d B.a,d,c,b C.a,c,d,b D.a,b,d,c 第 2 页共4 页

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

南京工程学院数据结构样卷09级加答案

数据结构09 一. 填空题(26分,每空2分) 1. 声明抽象数据类型的目的是________________________________________。 2. 已知结点类Node有data和next域,下列数据存储结构声明分别为 __________________________________和_____________________________________。 3. 已知SString s1("aababbabac"),s2("aba");,执行下列语句后,s1字符串是______________。s1.replaceAll(s1.substring(0,1),s2); s1.removeAll(s2.substring(0,2)); 4. 中缀表达式A+B*(C-D*(E+F)/G+H)-(I+J)*K的后缀表达式为______________________。 5. 设一个顺序循环队列容量为60,当front=47,rear=23时,该队列有__________个元素。 6. 已知二维数组a[10][8]采用行主序存储,数组首地址是1000,每个元素占用4字节,则数组元素a[4][5]的存储地址是__________________________。 7. 已知一棵完全二叉树的根(第0个)结点层次为1,则第100个结点的层次为_______。 8. 中根遍历序列和后根遍历序列相反的二叉树是_________________________________。 9. 由256个权值构造一棵哈夫曼树,则该二叉树共有________________结点。 10. 由n个顶点组成的无向连通图,最多可以有_____________________条边。 11. 10个元素的排序数据序列采用折半查找的平均查找长度是(写出算式)_____________________________________________________。 12. 已知关键字序列为{67,41,34,10,69,24,78,54,41*},采用快速排序算法按升序排序,以第一个元素为基准值,其第一趟排序后的关键字序列为____________________________。 二. 问答题(45分,每小题5分) 1. 已知目标串为"aabcbabcaabcaababc",模式串为"abcaababc",写出模式串改进的next数组;画出KMP算法的匹配过程,给出字符比较次数。 2. 什么是栈和队列?两者有何异同?什么情况下需要使用栈或队列?采用顺序存储结构的栈和队列,在进行插入、删除操作时需要移动数据元素吗?为什么?什么是队列的假溢出?为什么顺序存储结构队列会出现假溢出?怎样解决队列的假溢出问题?链式存储结构队列会出现假溢出吗?顺序存储结构的栈会出现假溢出吗?为什么? 3. 已知一棵二叉树中根次序遍历序列为GCBHKAMFDJE,后根次序遍历序列为CBGHMAJEDFK,画出这棵二叉树并进行中序线索化。 4. 设一段正文由字符集{A,B,C,D,E,F,G,H}组成,其中每个字符在正文中的出现次数依次为{23,5,17,4,9,31,29,18},采用哈夫曼编码对这段正文进行压缩存储,画出所构造的哈夫曼树,并写出每个字符的哈夫曼编码。 5. 删除以下带权无向图中的顶点D,画出删除D后图的邻接矩阵表示和邻接表表示。 1

数据结构习题库汇总

知识点: 01.绪论 02.顺序表 03.链表 04.栈 05.链队列 06.循环队列 07.串 08.数组的顺序表示 09.稀疏矩阵 10.广义表 11.二叉树的基本概念 12.二叉树遍历、二叉树性质 13.树、树与二叉树的转换 14.赫夫曼树 15.图的定义、图的存储 16.图的遍历 17.图的生成树 18.静态查找(顺序表的查找、有序表的查找) 19.动态查找(二叉排序树、平衡树、B树) 20.哈希查找 21.插入排序(直接插入、折半插入、2路插入、希尔排序)22.选择排序(简单选择、树形选择、堆排序) 23.快速排序、归并排序

101A1(1).数据的逻辑结构是(A)。 A.数据的组织形式B.数据的存储形式C.数据的表示形式D.数据的实现形式 101A1(2).组成数据的基本单位是(C)。 A.数据项B.数据类型C.数据元素D.数据变量 101B1(3).与顺序存储结构相比,链式存储结构的存储密度(B)。 A.大B.小C.相同D.以上都不对 101B2(4).对于存储同样一组数据元素而言,(D)。 A.顺序存储结构比链接结构多占空间B.在顺序结构中查找元素的速度比在链接结构中查找要快C.与链接结构相比,顺序结构便于安排数据元素D.顺序结构占用整块空间而链接结构不要求整块空间101B2(5).下面程序的时间复杂度为(B)。 x=0; for(i=1;ii;j++) state; A.n(n+1)/2 B.(n-1)(n+2)/2C.n(n+1)/2 D.(n-1)(n+2) 101D3(8).下面程序的时间复杂度为(A)。 for(i=0;i

数据结构考试试题

数据结构辅导试题一 一、简答问题: 1.四类数据结构 2.线性结构与非线性结构有何差别? 3.简述算法的定义与特性。 4.设有1000个无序元素,仅要求找出前10个最小元素,在下列排序方法中(归并排序、基数排序、快速排序、堆排序、插入排序)哪一种方法最好,为什么? 二、判断正误:(每小题1分,共5分)正确在()内打√,否则打 。1.()二叉排序树或是一棵空树,或是具有下列性质的二叉树: 若它的左子树非空,则根结点的值大于其左孩子的值, 若它的右子树非空,则根结点的值大于其右孩子的值。 2.()索引顺序表的特点是块内可无序,块间要有序。 3.()子串是主串中任意个连续字符组成的序列。 4.()线性结构只能用顺序结构存放,非线性结构只能用链表存放。 5.()快速排序的枢轴元素可以任意选定。 三、单项选择题:(每小题1分,共4分) 1.栈S最多能容纳4个元素。现有6个元素按A、B、C、D、E、F的顺序进栈, 问下列哪一个序列是可能的出栈序列? A)E、D、C、B、A、F B)B、C、E、F、A、D C)C、B、E、D、A、F D)A、D、F、E、B、C 2.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号为49的结点的左孩子的编号为: A、98 B、99 C、50 D、48 3. 对下列关键字序列用快速排序法进行排序时,速度最快的情形是: A){21、25、5、17、9、23、30} B){25、23、30、17、21、5、9} B){21、9、17、30、25、23、5} D){5、9、17、21、23、25、30} 4. 设森林F中有三棵树,第一、第二和第三棵树的结点个数分别为M1、M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是: A)M1 B)M1+M2 C)M3 D)M2+M3 四、填空题:(每小题2分,共 20分) 1.设一哈希表表长M为100 ,用除留余数法构造哈希函数,即H(K)=K MOD P(P<=M), 为使函数具有较好性能,P应选 2.N个结点的二叉树采用二叉链表存放,共有空链域个数为 3.单链表与多重链表的区别是 4.在各种查找方法中,平均查找长度与结点个数无关的是 5.深度为6(根层次为1)的二叉树至多有个结点。 6.已知二维数组A[20][10]采用行序为主方式存储,每个元素占2个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的存储地址是 7.在一个单链表中p所指结点之后插入s所指结点时,应执行 s->next= 和p->next= 的操作. 8.广义表((a,b),c,d)的表头是,表尾是 9.循环单链表LA中,指针P所指结点为表尾结点的条件是 10.在一个待排序的序列中,只有很少量元素不在自己最终的正确位置上,但离他们的正确位置都不远,则使用排序方法最好。 五、构造题:(每小题5分,共25分) 1.已知一棵二叉树,其中序序列DBCAFGE,后序序列DCBGFEA,构造该二叉树。2.设哈希表长度为11,哈希函数H(K)=(K的第一字母在字母表中的序号)MOD11,若输入顺序为(D,BA,TN,M,CI,I,K,X,TA),处理冲突方法为线性探测再散

数据结构试卷带答案

数据结构试卷(一) 一、选择题(20分) 1.组成数据的基本单位是( 1.C )。 (A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量 2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是( C )。 (A) 线性结构(B) 树型结构(C) 图型结构(D) 集合 3.数组的逻辑结构不同于下列(D)的逻辑结构。 (A) 线性表(B) 栈(C) 队列(D) 树 4.二叉树中第i(i≥1)层上的结点数最多有(C)个。 (A) 2i (B) 2i(C) 2i-1(D) 2i-1 5.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(.A )。 (A) p->next=p->next->next (B) p=p->next (C) p=p->next->next (D) p->next=p 6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(.C )。 (A) 6 (B) 4 (C) 3 (D) 2 7.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为(C )。 (A) 100 (B) 40 (C) 55 (D) 80 8.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为(8.B (A) 3 (B) 4 (C) 5 (D) 1 9.根据二叉树的定义可知二叉树共有(B)种不同的形态。 (A) 4 (B) 5 (C) 6 (D) 7 10.设有以下四种排序方法,则(B )的空间复杂度最大。 (A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序 二、填空题(30分) 1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元 素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。 2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为___________, 在链式存储结构上实现顺序查找的平均时间复杂度为___________。 3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构时,该二叉链表中共有________个指 针域,__________个空指针域。 4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点 B的操作序列为______________________________________。 5.设无向图G中有n个顶点和e条边,则其对应的邻接表中有_________个表头结点和_________个表 结点。 6.设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有______关系。 7.设一棵二叉树的前序遍历序列和中序遍历序列均为ABC,则该二叉树的后序遍历序列为__________。 8.设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编 号为8的双亲结点的编号是___________,编号为8的左孩子结点的编号是_____________。 9.下列程序段的功能实现子串t在主串s中位置的算法,要求在下划线处填上正确语句。 int index(char s[ ], char t[ ]) { i=j=0; while(i

数据结构试卷和答案

《数据结构》试题参考答案 (开卷) (电信系本科2001级 2002年12月) 一、回答下列问题 (每题4分,共36分) 1. 某完全二叉树共有15381个结点,请问其树叶有多少个? 答:n2=?n/2?=?15381/2?=7691(个) 2. 假设有二维数组A 7×9,每个元素用相邻的6个字节存储,存储器按字节编址。已知A 的起始存储位置(基地址)为1000,末尾元素A[6][8]的第一个字节地址为多少?若按列存储时,元素A[4][7]的第一个字节地址为多少? 答:① 末尾元素A[6][8]的第一个字节地址=1000+(7行×9列—1)×6B =1000+62×6=1372 ②按列存储时,元素A[4][7]的第一个字节地址=1000+(7列×7行+4)×6B =1000+53×6=1318 3. 在KMP 算法中,已知模式串为ADABBADADA ,请写出模式串的next[j]函数值。 答:根据 0 当j =1时 next[ j ]= max { k |1

数据结构习题

排序算法(19) 1.以单链表为存储结构,写一个直接选择排序算法。 2.设计一算法,使得在尽可能少的时间内重排数组,将所有取负值的关键字放在所有取非负值的关 键字之前。请分析算法的时间复杂度。 3.写一个双向冒泡排序的算法,即在排序过程中交替改变扫描方向。 4. 4.下面是一个自上往下扫描的冒泡排序的伪代码算法,它采用lastExchange 来记录每趟扫描中进 行交换的最后一个元素的位置,并以它作为下一趟排序循环终止的控制值。请仿照它写一个自下往上扫描的冒泡排序算法。 void BubbleSort(int A[],int n) //不妨设A[0..n-1]是整型向量 int lastExchange,j,i=n-1; while (i>0) lastExchange=0; for(j=0;j if([j+1] 交换A[j]和A[j+1]; lastExchange=j; } i=lastExchange;//将i置为最后交换的位置 }//endwhile }//BubbleSort 5.改写快速排序算法,要求采用三者取中的方式选择划分的基准记录;若当前被排序的区间长度小于等于3时,无须划分而是直接采用直接插入方式对其排序。 6.对给定的j(1 ≤ j ≤ n ),要求在无序的记录区R[1..n]中找到按关键字自小到大排在第j个位置上的记录(即在无序集合中找到第j个最小元),试利用快速排序的划分思想编写算法实现上述的查找操作。 7.以单链表为存储结构,写一个直接选择排序算法。 8.写一个heapInsert(R,key)算法,将关键字插入到堆R中去,并保证插入R后仍是堆。提示:应为堆R增加一个长度属性描述(即改写本章定义的SeqList类型描述,使其含有长度域);将key先插入R 中已有元素的尾部(即原堆的长度加1的位置,插入后堆的长度加1),然后从下往上调整,使插入的关键字满足性质。请分析算法的时间。 9.写一个建堆算法:从空堆开始,依次读入元素调用上题中堆其中。 10.写一个堆删除算法:HeapDelete(R,i),将R[i]从堆中删去,并分析算法时间,提示:先将R[i]和堆中最后一个元素交换,并将堆长度减1,然后从位置i开始向下调整,使其满足堆性质。

相关文档