数据结构

  • 格式:doc
  • 大小:248.18 KB
  • 文档页数:31

第一章 习题

判断题

1. 数据元素是数据的最小单位。( )

2. 记录是数据处理的最小单位。 ( )

3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系。( )

4.算法的优劣与算法描述语言无关,但与所用计算机有关。( )

5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。( )

6.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。( )

7.程序一定是算法。( )

8.数据的物理结构是指数据在计算机内的实际存储形式。( )

9. 数据结构的抽象操作的定义与具体实现有关。( )

10.在顺序存储结构中,有时也存储数据结构中元素之间的关系。( )

11.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( )

12.数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。( )

13.数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构。 ( )

答案

1.× 2.× 3.× 4.× 5.√

6.× 7.× 8. √ 9.× 10.×

11.× 12.√ 13.×

填空题

1.数据的物理结构包括____ 的表示和____ 的表示。

2.对于给定的n个元素,可以构造出的逻辑结构有 (1) , (2) , (3) ,(4)四种。

3.数据的逻辑结构是指_____。 4.一个数据结构在计算机中______称为存储结构。

5.抽象数据类型的定义仅取决于它的一组(1),而与(2)无关,即不论其内部结构如何变化,只要它的

(3) 不变,都不影响其外部使用。

6.数据结构中评价算法的两个重要指标是_______。

7.数据结构是研讨数据的(1)和(2),以及它们之间的相互关系,并对与这种结构定义相应的(3),设计出相应的(4)。

8. 一个算法具有5个特性: (1) 、 (2) 、(3),有零个或多个输入、有一个或多个输出。

9.计算机执行下面的语句时,语句s的执行次数为 _______ 。

for(i=l;i

for(j=n;j>=i;j--)

s;

10.下面程序段的时间复杂度为________。

if (n>1) sum=1;

for (i=0; sum

11.在有n个选手参加的单循环赛中,总共将进行______场比赛。

答案

1.数据元素 数据元素间关系

2.集合 线性结构 树形结构 图状结构或网状结构

3.数据的组织形式,即数据元素之间逻辑关系的总体而逻辑关系 是指数据元素之间的关联方式或称“邻接关系”

4.表示(又称映像)

5.(1)逻辑特性 (2)在计算机内部如何表示和实现(3)数学特性

6.算法的时间复杂度和空间复杂度

7.(1)逻辑结构(2)物理结构(3)操作(运算)(4)算法

8.(1)有穷性 (2)确定性 (3)可行性

9. (n+3)(n-2)/2

10. O(n)

11. n(n-1)/2

选择题(带*是超出目前知识点的题目)

1. 计算机算法指的是( 1 ),它必须具备( 2 ) 这三个特性。

(1) A. 计算方法 B.排序方法 C. 解决问题的步骤序列 D. 调度方法

(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性

C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性

2. 一个算法应该是( )。

A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C.

3.从逻辑上可以把数据结构分为( )两大类。

A.动态结构、静态结构 B.顺序结构、链式结构

C.线性结构、非线性结构 D.初等结构、构造型结构

4*.以下与数据的存储结构无关的术语是( )。

A.循环队列 B.链表 C.哈希表 D.栈

5.在下面的程序段中,对x的赋值语句的频度为( )。

for (i=1;i<=n;i++)

for (j=1;j<=n;j++)

X++;

A.O(2n) B.O(n) C.O(n2) D.O(log2n) 6.以下数据结构中,( )是非线性数据结构。

A.树 B.字符串 C.队 D.栈

7*. 下列数据中,( )是非线性数据结构

A.栈 B. 队列 C.完全二叉树 D. 堆

8.连续存储设计时,存储单元的地址( )。

A.一定连续 B.一定不连续

C.不一定连续 D.部分连续,部分不连续

9*.以下属于逻辑结构的是( )。

A.顺序表 B. 哈希表 C.有序表 D. 单链表

答案

1.1.C 1.2.B 2. B 3. C 4. D 5.C 6.A 7.C 8.A 9.C

应用题

1. 数据结构是一门研究什么内容的学科?

2. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?

3.评价一个好的算法,您是从哪几方面来考虑的?

4. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构?

5.若将数据结构定义为一个二元组(D,R),说明符号D,R 应分别表示什么?

6.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最方便,写出这些结构?

7.在编制管理通讯录的程序时, 什么样的数据结构合适? 为什么?

第二章 习题

判断题

1. 链表中的头结点仅起到标识的作用。( )

2. 顺序存储结构的主要缺点是不利于插入或删除操作。( ) 3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( )

4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。( )

5. 对任何数据结构链式存储结构一定优于顺序存储结构。( )

6.顺序存储方式只能用于存储线性结构。( )

7.集合与线性表的区别在于是否按关键字排序。( )

8. 所谓静态链表就是一直不发生变化的链表。( )

9. 线性表的特点是每个元素都有一个前驱和一个后继。( )

10.取线性表的第i个元素的时间同i的大小有关。 ( )

11.循环链表不是线性表。 ( )

12.线性表只能用顺序存储结构实现。( )

13.线性表就是顺序存储的表。( )

14.为了很方便的插入和删除数据,可以使用双向链表存放数据。( )

15.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( )

答案

1. × 2. √ 3. √ 4. × 5. ×

6. × 7. × 8. × 9. × 10.×

11.× 12.× 13.× 14.√ 15.×

填空题

1.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_______存储结构。

2.线性表L=(a1,a2,„,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是________。

3.设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点 , 若将结点y插入结点x之后,则需要执行以下语句:_______; ______;

4.在一个长度为n的顺序表中第i个元素(1<=i<=n)之前插入一个元素时,需向后移动________个元素。 5.在单链表中设置头结点的作用是________。

6.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为________,在给定值为x的结点后插入一 个新结点的时间复杂度为________。

7.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成________和_______。

8. 在双向循环链表中,向p所指的结点之后插入指针f所指的结点,其操作是_______、_______、 _______、________。

9. 在双向链表结构中,若要求在p 指针所指的结点之前插入指针为s 所指的结点,则需执行下列语句:s->next=p; s->prior= ________;p->prior=s;________=s;

10.链接存储的特点是利用________来表示数据元素之间的逻辑关系。 11.顺序存储结构是通过________表示元素之间的关系的;链式存储结构是通过________表示元素之间的关系的。

12.对于双向链表,在两个结点之间插入一个新结点需修改的指针共 ______个,单链表为_______个。

13.循环单链表的最大优点是:________。

14.已知指针p指向单链表L中的某结点,则删除其后继结点的语句是:________

15.带头结点的双循环链表L中只有一个元素结点的条件是:________

16.在单链表L中,指针p所指结点有后继结点的条件是:__

17.带头结点的双循环链表L为空表的条件是:________。

18.在单链表p结点之后插入s结点的操作是:_______。

答案

1. 顺序

2.(n-1)/2

3.py->next=px->next; px->next=py

4.n-i+1

5.主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除。第一个结点不必另作判断。另外,不论链表是否为空,链表指针不变。

6.O(1),O(n)

7.单链表,双向链表