数据结构期末考试填空题全部有答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章概述

一、填空

1、数据逻辑结构包括线性结构、_树形结构_和_图形结构_三种类型,树型结构和图形结构合称为_非线性结构_。

2、线性结构元素之间的关系是__一对一关系,树型结构元素之间的关系是_一对多_关系,图形结构元素之间的关系是__多对多__关系。

3、线性结构中第一个结点没有_前驱_结点,其他结点有且只有_一_个前驱结点,最后一个结点没有_后继_结点。

4、树型结构中树根结点没有__前驱_结点,其他结点有且只有一个__前驱__结点;叶子结点没有__后继_结点,其他结点可以有__任意多个_后继结点。

5、树型结构中,任何结点可以有_任意多个前驱结点和后继结点。

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

7、算法效率分析一般包括_时间复杂度__和_空间复杂度_。

二、简答

1、简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。

◆数据:指能够被计算机识别、存储和加工处理的信息载体。

◆数据元素:就是数据的基本单位,在某些情况下,数据在计算机程序中通常作为一个整体进行考虑和处理。有时,一个数据元素可由若干个数据项组成

◆数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。

◆数据结构:指的是数据之间的相互关系,即数据的组织形式。一般包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。

◆逻辑结构:指各数据元素之间的逻辑关系。

◆存储结构:就是数据的逻辑结构用计算机语言的实现。

◆线性结构:数据逻辑结构中的一类,它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构。

◆非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。

2、简述数据的逻辑结构和物理结构之间的关系。

1)数据的物理结构也称存储结构; 2)数据的逻辑结构仅考虑数据之间的逻辑关系; 3)数据的物理结构是数据的逻辑结构在计算机中的映像; 4)数据的逻辑结构独立于数据的存储介质。

3、常用的数据存储表示方法有哪几种?

常用的存储表示方法有四种:

◆顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。

◆链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构。

◆索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

◆散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

4、简述算法的五个基本特性。

(1)有穷性一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。(2)确定性算法中每一条指令必须有确切的含义。不存在二义性。且算法只有一个入口

和一个出口。

(3)可行性一个算法是可行的。即算法描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。

(4)输入一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。

(5)输出一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。

5、简述算法的评价标准。

第二章线性表

一、填空

1、对于顺序表,若每个数据元素占用k个存储单元,并以所占的第一个存储单元地址作为这个数据元素的存储位置,则表中任一元素a i的存储地址为_LOC(ai)=LOC(a1)+(i-1)*k_。

2、顺序表的插入运算中,最好情况下,当在_表尾___插入结点时,结点不用后移,其时间复杂度为__O(1)___;最坏情况下,当在__表头___插入结点时,结点全部后移,其时间复杂度为O(N)_。在顺序表上做插入运算,平均要移动表中_n/2__个结点。顺序表插入算法的平均时间复杂度为___O(n)__。

3、顺序表的删除运算中,最好情况下,当在__表尾__删除结点时,结点不用后移,其时间复杂度为_O(1)__;最坏情况下,当在___表头__删除结点时,结点全部后移,其时间复杂度为_O(n-1)_。在顺序表上做删除运算,平均要移动表中__n-1/2__个结点。顺序表删除算法的平均时间复杂度为O(n-1)_。

4、链式存储结构中每个结点由_数据域__和__指针域__两部分组成。

5、链表是一种在__任意的存储单元___上非连续、非顺序的存储结构,数据元素的逻辑顺序通过链表中的__指针域__实现的。

6、单链表的特点是:链表中每个结点只包含_1_个指针域,第一个结点无_前驱_,最后一个结点无_后继_,若表为空,则头指针为___空__。

7、链结点变量的动态生成是通过__GetElem__函数实现的。

8、循环链表是一种头尾相接的链表,它是通过将单向链表中的__最后一个_结点的指针指向链表中_头__结点形成的。

9、双链表特点是:每一个结点包含一个__数据__域,两个__指针__域,其中一个指向其__直接前驱__结点,另一个指向其_直接后继_结点。

10、当线性表的长度变化较大,难以估计其存储规模时,以采用_链表__作为存储结构为好;当线性表的长度变化不大,易于事先确定其大小,为了节约存储空间,宜采用__顺序表_作为存储结构。

11、若线性表的操作主要是进行查找,很少做插入和删除操作时,采用_顺序表__做存储结构为宜;对于频繁进行插入和删除的线性表,宜采用_链表_做存储结构。若表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的_单循环链表为宜。

第三章栈和队列

一、填空

1、向量、栈和队列都是_线性_结构,可以在向量的__任何__位置插入和删除元素;对于栈,只能在__栈顶__位置插入元素,只能在__栈顶__位置删除元素;对于队列,只能在__队尾_位置插入元素,只能在__对头__位置删除元素。

2、栈也被称为_后进先出__线性表。

3、顺序栈使用__一组地址连续的存储单元_来作为栈的顺序存储空间。

相关文档
最新文档