文档介绍:(下列各题,正确的请在前面的括号内打√;错误的打×)
第1章
(√)(1)数据的逻辑结构与数据元素本身的内容和形式无关。
(√)(2)一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。
(×)(3)数据元素是数据的最小单位。
(×)(4)数据项是数据的基本单位。
(×)(5)数据的逻辑结构和数据的存储结构是相同的。
(√)(6)数据的逻辑结构是各数据元素之间的逻辑关系,是用户按使用需要而建立的。
(√)(7)数据的物理结构是指数据在计算机内实际的存储形式。
(√)(8)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。
(√)(9)数据的存储结构是数据的逻辑结构的存储映像。
(√)(10)算法是对解题方法和步骤的描述。
第2章
(×)(1)链表的物理存储结构具有同链表一样的顺序。
(×)(2)链表的每个结点都恰好包含一个指针域。
(√)(3)线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。
(×)(4)链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
(×)(5)顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
(√)(6)数组元素的存储位置是下标的线性函数。
(√)(7)在单链表中,元素的存储位置用指针联系,所以可以从头结点开始查找任何一个元素。
(×)(8)顺序存储线性表的插入和删除操作不需要付出很大的代价,因为平均每次移动仅一半的元素。
(×)(9)顺序存储方式的优点是存储密度大,插入、删除效率高。
(×)(10)在单链表中,要取得某个元素,只要知道该元素的指针即可,因此单链表是随机存取的存储结构。
第3章
(√)(1)大多数排序算法都有比较关键字大小和改变指向记录的指针或移动记录本身两种基本操作。
(×)(2)快速排序在任何情况下都比其它排序方法速度快。
(√)(3)快速排序算法在每一趟排序中都能找到一个元素放在其最终位置上。
(×)(4)如果某种排序算法不稳定,则该排序方法就没有实际应用价值。
(√)(5)对n个记录的进行快速排序,所需要的平均时间是O(nlog2n)。
(×)(6)冒泡排序是不稳定的排序。
(√)(7)冒泡排序的时间复杂度是O(n2)。
(×)(8)堆排序所需的时间与待排序的记录个数无关。
(√)(9)对快速排序来说,初始序列为正序或反序都是最坏情况。
(√)(10)对于n个记录的集合进行归并排序,所需的平均时间为O (nlog2n)。
第4章
(√)(1)栈是运算受限制的线性表。
(√)(2)在栈空的情况下,不能作出栈操作,否则产生下溢出。
(×)(3)栈一定是顺序存储的线性结构。
(×)(4)空栈就是所有元素都为0的栈。
(×)(5)一个栈的输入序列为:A,B,C,D,可以得到输出序列:C,A,B,D。
(√)(6)一个栈的输入序列为:A,B,C,D,通过入出栈操作可以输出序列:A,B,C,D。
(×)(7)在C或C++语言中设顺序栈的长度为MAXLEN,则top=MAXLEN时表示队满。
(√)(8)链栈与顺序栈相比,其特点之一是通常不会出现栈满的情况。
(√)(9)在栈中插入或删除一个元素应遵守的“后进先出”的原则。
(√)(10)进位制的换算算法是栈的应用。
(√)(11)队列是限制在两端进行操作的线性表。
(√)(12)判断顺序队列为空的标准是头指针和尾指针均指向同一个结点。
(×)(13)在链队列做出队操作时,会改变front指针的值。
(√)(14)在循环队列中,若尾指针rear大于头指针front,其元素个数为rear- front。
(√)(15)队列是一种“先进先出”的线性表。
(×)(16)在循环链队列中无上溢出现象。
(×)(17)栈和队列都是顺序存储的线性结构。
(√)(18)栈和队列都是属于线性结构。
(×)(19)顺序队和循环队的队满和队空的判断条件是一样的。
(√)(20)在队列中插入或删除一个元素应遵守的”先进先出”的原则。
第5章
(×)(1)串的长度是指串中不同字符的个数。
(×)(2)串是n个字母的有限序列。
(√)(3)空串不等于空格串。
(×)(4)如果两个串含有相同的字符,则说明它们相等。
(×)(5)如果一个串中所有的字母均在另一个串中出现,则说明前者是后者的子串。
(√)(6)串的堆分配存储是一种动态存储结构。
(×)(7)“DT”是“DATA”的子串。
(×)(8)空串与空格串是相同的。
(×)(9)串中任意个字符组成的子序列称为该串的子串。
(√)(10)子串的定位运算称为模式匹配。