《数据结构》作业习题
《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)
![《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)](https://img.taocdn.com/s3/m/e0e79e75eff9aef8951e0646.png)
第1章4.答案:(1)顺序存储结构顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。
(2)链式存储结构顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。
但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。
所以链式存储结构通常借助于程序设计语言的指针类型来描述。
5. 选择题(1)~(6):CCBDDA6.(1)O(1) (2)O(m*n) (3)O(n2)(4)O(log3n) (5)O(n2) (6)O(n)第2章1.选择题(1)~(5):BABAD (6)~(10):BCABD (11)~(15):CDDAC 2.算法设计题(1)将两个递增的有序链表合并为一个递增的有序链表。
要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。
表中不允许有重复的数据。
[题目分析]合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。
如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。
当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。
void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc){//合并链表La和Lb,合并后的新表使用头指针Lc指向pa=La->next; pb=Lb->next;//pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点Lc=pc=La; //用La的头结点作为Lc的头结点while(pa && pb){ if(pa->data<pb->data){pc->next=pa; pc=pa; pa=pa->next;}//取较小者La中的元素,将pa链接在pc的后面,pa指针后移else if(pa->data>pb->data) {pc->next=pb; pc=pb; pb=pb->next;}//取较小者Lb中的元素,将pb链接在pc的后面,pb指针后移else //相等时取La中的元素,删除Lb中的元素{pc->next=pa;pc=pa;pa=pa->next;q=pb->next; delete pb ; pb =q;}}pc->next=pa?pa:pb; //插入剩余段delete Lb; //释放Lb的头结点}(5)设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点)。
数据结构试题及答案(十套)
![数据结构试题及答案(十套)](https://img.taocdn.com/s3/m/75752727b94ae45c3b3567ec102de2bd9605defa.png)
一、单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.AOV网是一种()。
A.有向图B.无向图C.无向无环图D.有向无环图6.采用开放定址法处理散列表的冲突时,其平均查找长度()。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。
A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。
A.O(log2n) B.O(nlog2n)C.0(n) D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1.数据结构是指数据及其相互之间的______________。
当结点之间存在M对N (M:N)的联系时,称这种结构为_____________________。
数据结构试题及答案
![数据结构试题及答案](https://img.taocdn.com/s3/m/2384413c9a6648d7c1c708a1284ac850ad0204fd.png)
数据结构试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是元素之间存在一对一的线性关系。
以下哪个数据结构不属于线性结构?A. 栈B. 队列C. 树D. 链表答案:C2. 栈(Stack)是一种后进先出(LIFO)的数据结构,以下哪个操作不是栈的基本操作?A. PushB. PopC. TopD. Sort答案:D3. 在二叉树的遍历中,前序遍历的顺序是:A. 根-左-右B. 左-根-右C. 右-根-左D. 根-右-左答案:A4. 哈希表的冲突可以通过多种方法解决,以下哪个不是解决哈希表冲突的方法?A. 链地址法B. 开放地址法C. 再散列法D. 排序法答案:D5. 以下哪个排序算法是稳定的?A. 快速排序B. 堆排序C. 归并排序D. 选择排序答案:C6. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构来实现?A. 队列B. 栈C. 链表D. 哈希表答案:B7. 以下哪个是图的存储方式?A. 顺序存储B. 链式存储C. 散列表D. 矩阵存储答案:D8. 动态数组(如C++中的vector)在插入元素时可能需要进行的操作是:A. 原地扩展B. 复制元素C. 重新分配内存D. 释放内存答案:C9. 以下哪个不是算法的时间复杂度?A. O(1)B. O(log n)C. O(n^2)D. O(n!)答案:D10. 在查找算法中,二分查找法要求被查找的数据必须是:A. 无序的B. 有序的C. 随机分布的D. 唯一元素答案:B二、简答题(每题5分,共30分)1. 简述链表和数组的区别。
答案:链表和数组都是存储数据的线性数据结构,但它们在内存分配、访问方式、插入和删除操作等方面存在差异。
数组在内存中是连续存储的,可以通过索引快速访问任意元素,但插入和删除元素时可能需要移动大量元素。
链表在内存中是非连续存储的,每个元素包含数据和指向下一个元素的指针,不支持通过索引快速访问,但插入和删除操作只需要改变指针,不需要移动其他元素。
数据结构习题(有答案)(精选文档)
![数据结构习题(有答案)(精选文档)](https://img.taocdn.com/s3/m/84f3c037f01dc281e53af094.png)
数据结构习题(有答案) 第1章绪1。
1 有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。
(1) A= ( D,R ),其中,D = { a1,a2,a3,a4}, R={ }(2) B= ( D,R ),其中,D = { a,b,c,d,e}, R={ (a,b),(b,c),(c,d),(d,e)}(3) C= ( D,R),其中,D = { a,b,c,d,e,f,g}, R={(d,b),(d,g),(1)集合(2) 线性表a b c d e(3)树fgabcde(4)图1453621 / 48·····谢阅。
(b,a),(b,c),(g,e),(e,f)}(4) K= ( D,R ),其中,D= { 1,2,3,4,5,6}, R={〈1,2>,〈2,3>,〈2,4>,<3,4>,<3,5>,<3,6>,<4,5〉,〈4,6〉}1.2设n为正整数,求下列各程序段中的下划线语句的执行次数。
(1) i=1;k=0while(i 〈=n-1){k+=10*i ;i++;(2) for (int i=1;i<=n; i++)for (int j=1; j〈=n; j++){c[i][j]=0;解:(1) n-1(2) ∑∑∑====ninjnkn111312 / 48·····谢阅。
}ﻩ for(intk=1; k〈=n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j]}(3) x=0;y=0;for (int i=1; i<=n; i++)for (int j=1; j<=i; j++)for (intk=1; k〈=j; k ++)(3)62)1)(nn(n21)(216)12)(1(2121212)1(1112111111++=+•+++•=+=+==∑∑∑∑∑∑∑∑========nnnnniii ijnininiijjkniijni3 / 48·····谢阅。
数据结构习题(最终)——13年11月
![数据结构习题(最终)——13年11月](https://img.taocdn.com/s3/m/7776089b6bec0975f465e246.png)
《数据结构》作业习题班级:学号:姓名:习题一绪论1、数据结构主要研究的三个内容为、以及定义在该结构上的。
2、数据结构从逻辑结构上可分为线性结构与非线性结构,其中树、图属于。
3、数据结构被形式地定义为(D,R),其中D是的有限集,R是D上的有限集。
4、程序作用是利用swap函数,实现main函数中变量a与b的值的交换。
填写空缺使代码完整。
void swap( ) { int temp;;;; } int main( ){ int a=7,b=11;printf("a=%d,b=%d\n",a,b);swap( );printf("a=%d,b=%d\n",a,b); }5、函数triangleArea的作用是:根据三角形的三条边a、b、c,求三角形的面积。
求三角形面积的公式为)cs)(bs)(as(s---,其中s=(a+b+c)/2。
要求函数返回值类型定义为状态类型(Status 类型),当给定的三条边不能构成三角形时,函数返回ERROR;否则函数返回OK,并利用引用类型参数返回三角形的面积。
填写空缺使代码完整。
triangleArea( double a, double b, double c, area) { double s;if(a+b<=c||a+c<=b||b+c<=a) return ;else{ s=(a+b+c)/2;=sqrt(s*(s-a)*(s-b)*(s-c));return ;}6、设有定义如下:typedef struct stuInfo{int num;char name[20];char sex;struct stuInfo *next;} stuType;(1)利用指针变量stus,实现一个能容纳40个stuType类型元素动态数组。
实现该功能正确的代码为:stuType *stus;stus=( )malloc( );(2)从内存中分配两个stuType类型的结点空间,其指针分别为p、q。
最新版《数据结构》各章习题及答案
![最新版《数据结构》各章习题及答案](https://img.taocdn.com/s3/m/e8ec8488b1717fd5360cba1aa8114431b90d8e6d.png)
最新版《数据结构》各章习题及答案第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。
(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。
① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像② (A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。
(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5 个特性。
① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。
()2.算法就是程序。
()3.数据元素是数据的最小单位。
()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。
()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。
()三、填空题1.数据逻辑结构包括________、________、_________ 和__________ 四种类型,其中树形结构和图形结构合称为_____ 。
2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______ 个前驱结点;最后一个结点______后续结点,其余每个结点有且只有 _______ 个后续结点。
3.在树形结构中,树根结点没有_______ 结点,其余每个结点有且只有_______个前驱结点;叶子结点没有 ________ 结点,其余每个结点的后续结点可以_________。
数据结构试题及答案(10套)
![数据结构试题及答案(10套)](https://img.taocdn.com/s3/m/53b8915b9a6648d7c1c708a1284ac850ad0204f9.png)
数据结构试题及答案(10套)数据结构试题及答案(10套)根据您的需求,我为您准备了10套数据结构试题及答案。
每套试题包含以下几个部分:选择题、填空题、编程题及答案解析。
下面是试题的具体内容:第一套试题:选择题:1. 在数据结构中,什么是栈?A. 先进先出(FIFO)的数据结构B. 后进先出(LIFO)的数据结构C. 随机访问的数据结构D. 无序排列的数据结构2. 以下哪种操作与队列的特性不相符?A. 入队操作B. 出队操作C. 查找操作D. 获取队首元素填空题:1. ______ 是一种动态集合,支持插入、删除和查找等操作。
2. 在二叉搜索树中,中序遍历的结果是________。
编程题:实现一个栈的数据结构,并包含以下操作:- push(x):将元素 x 压入栈中- pop():删除栈顶的元素并返回该元素- top():获取栈顶元素的值- empty():检查栈是否为空答案解析:选择题:B、C填空题:1. 集合 2. 升序序列编程题:略第二套试题:选择题:1. 以下哪个数据结构是一种广度优先搜索的应用?A. 栈B. 队列C. 堆D. 链表2. 在链表中,如果要删除一个节点,只给出该节点的指针,那么需要通过什么方式完成删除操作?A. 直接删除该节点B. 指向该节点的前一个节点的指针C. 指向该节点的后一个节点的指针D. 无法完成删除操作填空题:1. 树是一种________的数据结构。
2. 二叉树每个节点最多有______个子节点。
编程题:实现一个队列的数据结构,并包含以下操作:- enqueue(x):将元素 x 入队- dequeue():删除队首的元素并返回该元素- peek():获取队首元素的值- is_empty():检查队列是否为空答案解析:选择题:B、B填空题:1. 分层组织 2. 2编程题:略(以下部分省略)通过以上的题目,您可以对数据结构的知识点进行综合练习和复习。
每套试题包含了不同难度和类型的题目,能够帮助您全面了解和掌握数据结构的概念和操作。
数据结构习题(包含全部答案解析)
![数据结构习题(包含全部答案解析)](https://img.taocdn.com/s3/m/2bc74635f78a6529647d537f.png)
数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。
A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。
A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。
A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。
A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
数据结构练习题(含答案)
![数据结构练习题(含答案)](https://img.taocdn.com/s3/m/7e8aaf63de80d4d8d05a4f3e.png)
1.1 单项选择题运算等的课程。
① A.操作对象 B.计算方法 C.逻辑结构 D.数据映象 ② A.存储结构 B.关系 C.运算 D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为 DS= (D, R),其中D 是①的有限集合,R 是D 上的②有限集 合。
① A.算法 B.数据元素 C.数据操作 D.数据对象 ② A.操作B.映象C.存储D.关系在数据结构中,从逻辑上可以把数据结构分成 。
A. 动态结构和静态结构B.紧凑结构和非紧凑结构1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括 、和 三种类型,树形结构和图形结构合称为 。
2. 在线性结构中,第一个结点 前驱结点,其余每个结点有且只有 个前驱结点;最后一个结点 后续结 点,其余每个结点有且只有 ■个后续结点。
3. 在树形结构中,树根结点没有 结点,其余每个结点有且只有 个直接前驱结点,叶子结点没有 结点, 其余每个结点的直接后续结点可以 。
4. 在图形结构中,每个结点的前驱结点数和后续结点数可以 。
5.6. 线性结构中兀素之间存在算法的五个重要特性是_ _____ 关系,树形结构中兀素之间存在 ________ 关系,图形结构中兀素之间存在 ___ , — __ , __ , _ ,_ __ 。
____ 关系。
7. 分析卜面算法(程序段) for(i=0;i<n;i++)for (j=0;j<n; j++) A[i][j]=0; ,给出取大语句频度 _____ ,该算法的时间复杂度正 .。
8. 分析卜面算法(程序段)for (i=0;i<n;i++) for (j=0;j<i; j++) A[i][j]=0;,给出取大语句频度 ____ ,该算法的时间复杂度正 _________O9.分析卜面算法(程序段) ,给出取大语句频度 ____ ,该算法的时间复杂度正 _________ 。
(完整版)数据结构练习题及参考答案
![(完整版)数据结构练习题及参考答案](https://img.taocdn.com/s3/m/9ce3abd92b160b4e777fcf55.png)
数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构练习题及参考答案
![数据结构练习题及参考答案](https://img.taocdn.com/s3/m/9438b56951e79b896902263b.png)
《数据结构》练习题一、解答题(共50分)1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所示。
请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算WPL 。
2. (8分)若一棵二叉树中序遍历和后序遍历序列分别为:DBEHGAFIC 和DHGEBIFCA 。
试画出这棵二叉树,并写出其先序遍历和层序遍历序列。
3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的顶点表按字母a 、b 、c 、d 、e 、f 、g 、h 的顺序依次存储,邻接表的边表结点按顶点的下标由小到大链接)。
请画出其邻接表,并写出从顶点f 出发,分别进行深度和广度优先遍历的序列,写出用Prime 方法从顶点c开始产生最小生成树的边的序列。
4.(8分)已知键值序列为(44,39,67,25, 52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。
⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是( )。
⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进行排序,第一趟的排序结果是( )。
二、完善程序(共20分,每空2分)1.假设一组递减有序的原始数据存储在数组r 中,存放元素的下标下限为low,下标上字符 出现频率 a 0.05 b 0.03 c 0.24 d 0.16 e 0.08 f 0.24 g 0.18 h0.02限为high,以下是在数组中查找数值为k的折半查找算法。
请填空完善程序。
int BinSearch(int r[ ], int low,int high,int k){ int l,h,m;l= low; h= high;while ( ⑴){m= ⑵;if (k < r[m]) ⑶;else if (k > r[m]) ⑷;else return m;}return 0;}2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。
《数据结构》习题册
![《数据结构》习题册](https://img.taocdn.com/s3/m/17907c75bb68a98271fefaee.png)
《数据结构》练习题习题一一.单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的(1)以及它们之间的(2)和运算的学科.(1)A.操作对象 B.计算方法 C.逻辑存储 D.数据映象(2)A. 结构 B.关系 C.运算 D. 算法2.数据结构被形式地定义为(K,R),其中K是(1)的有限集合,R是K上的(2)有限集合.(1)A.算法 B. 数据元素 C. 数据操作 D.逻辑结构(2)A. 操作 B. 映象 C. 存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成( ).A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4.计算机算法指的是(1),它必具备输入,输出和(2)等五个特性.(1)A. 计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法(2)A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性5.线性表的顺序存储结构是一种(1)的存储结构,线性表的链式存储结构是一种(2)的存储结构.(1)(2)A.随机存取 B.顺序存取 C.索引存取 D.散列存取6.线性表的逻辑顺序与存储顺序总是一致的,这种说法( )A.正确 B.不正确7.线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )A.必须是连续的 B.部分地址必须是连续的C. 一定是不连续 D.连续或不连续都可以8.在以下的叙述中,正确的是( )A.线性表的线性存储结构优于链表存储结构B.二维数组是其数据.元素为线性表的线性表C. 栈的操作方式是先进先出D.队列的操作方式是先进后出9.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( ). A.110 B.108 C.100 D.12010.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( ).A.edcba B.decba C. dceab D.abcde11.栈结构通常采用的两种存储结构是( ).A.顺序存储结构和链表存储结构B.散列方式和索引方式C. 链表存储结构和数组D.线性存储结构和非线性存储结构12.判定一个栈ST(最多元素为mO)为空的条件是(①);判定ST为满的条件是(②).A.ST-->top<>0 B.ST-->top=0 C. ST-->mp<>m0 D.ST-->top=mO12.栈的特点是(①),队列的特点是(②).A.先进先出 B,先进后出13.一个队列的入列序列是1,2,3,4,则队列的输出序列是( ).A. 4,3,2,1B.1,2,3,4 C.1,4,3,2 D.3,2,4,114.判定一个队列QU(最多元素为mO)为空的条件是(①);判定QU为满的条件是(②).A. QU->rear-QU->front==m0B. QU->rear-QU->front-1==m0C. QU->front==QU->rearD. QU->front==QU->rear+115.判定一个循环队列QU(最多元素为mO)为空的条件是(①);判定QU为满的条件是(②).A. QU->front==QU->rearB. QU->front!=QU->rearC. QU->front==(QU->rear+1)%m0D. QU->front!=(QU->rear+1)%m016.栈和队列的共同点是( ).A.都是先进后出 B.都是先进先出C. 只允许在端点处插入和删除元素 D.没有共同点17.不带头结点的单链表head为空的判定条件是( ).A. head=NULLB. head->next=NULLC. head->next=headD.head!=NULI18.带头结点的单链表head为空的判定条件是( ).A. head=NULLB. head->next=NULLC. head->next=headD. head!=NULL19.非空的循环单链表head的尾结点是(由p所指向)满足( ).A. p->next=NULLB. p=NULLC. p->next=headD. p=head20. 在循环双链表的p所指结点之后插入s所指点的操作是( ).A. p->right=s;s->left=p; p->right->left=s;s->right=p->right;B. p->right=s;p->right->left=s;s->left=p;s->right=p->right;C. s->left=p:s->right=p->right;p->right=s;p->right->left=s;D. s->left=p;s->right=p->right;p->right->left=s;p->right=s;21. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( ). A.s->next=p->next;p->next=s;B. p->next=s->next;s->next=p;C. q->next=s;s->next=p:D. p->next=s;s->next=q;22. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行( ).A. s->next=p;p->next=s;B. s->next=p->next;p->next=s;C. s->next=p->next; p=s;D. p->next=s;s->next=p;23.在一个单链表中,若删除p所指结点的后续结点,则执行( ).A. p->next=p->next->next;B. p=p->next;p->next=p->next->next;C. p->next=p->next;D. p=p->next->next;24. 假设双链表结点的类型如下:typedef struct linknode{int data;struct linknode *llink;struct linknode *rlink;}bnode;下面给出的算法段是要把一个q所指新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,能正确完成要求的算法段是( ).A.q->rlink=p; q->llink=p->llink; p->llink=q; p->llink->rlink=q;B.p->llink=q; q->rlink=p; p->llink->rlink=q; q->llink=p->llink;C. q->llink=p->llink; q->rlink=p; p->llink->rlink=q; p->llink=q;D.以上都不对25.从一个具有n个结点的单链表中查找等于x结点时.在查找成功的情况下,需平均比较( )个结点.A. n B.n/2 C.(n-1)/2 D.(n+1)/226.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( ).A. O(1) B.O(n) C.O(n2) D. O(nlog2n)27.向一个栈顶指针为16的链栈中插入一个s所指结点时,则执行( ).A.HS->next=s; B.s->next=HS->next;HS->next=s;C.s->next=HS;HS=s; D.s->next=HS; HS=HS->next;28.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行( ).A.x=HS;HS=HS->next; B.x=HS->data;C.HS=HS->next;x=HS->data;D. x=HS->data;HS=HS->next;29.在一个链队中,假如f和r,分别为队首和队尾指针,要插入s所指结点,则执行( ).A.f->next=s;f=s;B.r->next=s;r=s;C. s->next=r; r=s;D.s->next=f; f=s;30.在一个链队中,假如f和r分别为队首和队尾指针.要删除一个结点,则执行( )oA.r=f->next; B.r=f->next; C.f=f->next; D.f=r->next;31.空串与空格串是相同的,这种说法( ).A.正确 B.不正确32.设有两个串p和q,求q在p中首次出现的位置的运算称作( ).A.连接 B,模式匹配 C.求子串 D.求串长33.串是一种特殊的线性表,其特殊性体现在( ).A.可以顺序存储 B.数据元素是一个字符C.可以链接存储 D.数据元素可以是多个字符34.设串s1='ABCDEFG’,s2='PQRST',函数CONCAT(x,y)返回x和y串的连接串,SUBSTR(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,STRLEN(s)返回串s的长度,则CONCAT(SUBSTR(s1,2,STRLEN(s2)),SUBSTR(s1,STRLEN(s2),2)的结果串是( ).A.BCDEF B.BCDEFG C.BCPQRST D.BCDEFEF35.常对数组进行的两种基本操作是( ).A.建立与删除 B.索引和修改 C查找和修改 D.查找与索引36.二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标j 的范围从1到10,则存放M至少需要(①)个字节;M的第8列和第5行共占(②)个字节;若M按行优先方式存储,元素M[8][5]的起始地址与当M按列优先方式存储时的( ③)元素的起始地址一致.①A.90 B.180 C.240 D.540②A.108 B.114 C.54 D.60③A.M[8][5] B.M[3][10] C.M[5][8] D.M[0][9]37.数组A中每个元素的长度为3个字节,行下标i从1到8,列下标从l到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是( ).A.80 B.100 C.240 D.27038.数组A中每个元素的长度为3个字节,行下标i从l到8,列下标从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址是(①);按列存放时,元素A[5][8]的起始地址是(②).①A.SA+141 B.SA+144 C.SA+222 D.SA+225②A. SA+141 B.SA+180 C.SA+222 D.SA+22539.稀疏矩阵一般的压缩存储方法有两种,即( ).A.二维数组和三维数组 B.三元组和散列C. 三元组和十字链表 D.散列和十字链表40.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点( ).A.正确 B.不正确二、填空题1.数据逻辑结构包括___________、_______________和______________三种类型,树型结构和图型结构合称为 _____________________2.在线性结构中,第一个结点______________前驱结点,其余每个结点有且只有________个前驱结点,最后一个结点_______后继结点,其余每个结点有且只有__________个后继结点.3.算法的五个重要特性是________ 、_________、______________、___________ 、_________ 和___________. 4.向量、栈和队列都是__________结构,可以在向量_________位置插入和删除元素;对于栈只能在_________ 插入和删除元素:对于队列只能在___________插入元素和在________删除元素.5.向一个长度为n的向量的第i个元素(1<=i<=n+1)之前插入一个元素时,需向后移动_______个元素.若要删除第j个元素(1<=j<=n)时,需向前移动______________个元素.6. 向栈中压入元素的操作是先____________________________,后存入元素.出栈的操作是先取出元素,后__________________.7.在一个循环队列中,队首指针指向队首元素的_____________;从该队列中删除一个元素时,其操作是先_________________,后取出元素.8.在具有n个单元的循环队列中,队满时共有_____________元素.9.单链表是_________________ 的链式存储表示.10.在双链表,每个结点有两个指针域,通常一个指向___________,另一个指向_________________.11.在一个单链表中的p所指结点之前插入一个s所指结点时,可执行如下操作:(1)s->next=_____________ (2)p->next=s; (3)t=p->data;(4)p->data=_______________; (5)s->data=_______________;12.在一个单链表中删除p所指结点时,应执行以下操作:(1)q=p->next; (2)p->data=p->next->data;(3)p->next=_________________; (4)free(q);13.带有一个头结点的单链表head为空的条件是____________________.14.在一个单链表中p所指结点之后插入一个s所指结点时,应执行(1)s->next=______________; (2)p->next=_________________;15.在栈项指针为HS的链栈中,判定栈空的条件是______________ .16.在HQ的链队中,判定只有一个结点的条件是__________________ .17.串的两种最基本的存储方式是________________ 和_____________.18.两个串相等的充分必要条件是 ____________________.19.空串是_________________,且其长度等于________________.20.已知二维数组A[m][n]采用以行优的存储方式,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是_________________________.21. 广义表是____________________. 如G=(al,a2,a3,…,ai,...,an),其中G是___________,n是_______________________,ai也可以是___________________________.22.广义表(((a)))的表头是_________________,表尾是__________;广义表((a),((b),c),(((d))))的长度是____________;深度是_____________________ .23.设HEAD[P]为求广义表P的表头函数,TAIL[P]为求广义表P的表尾函数.求下列的运算结果:(1)HEAD[(a,b,c)]= _________________; (2)TAIL[(a,b,c)]=__________________;(3)HEAD[((a),(b))]=_________________; (4)TAIL[((a),(b))]=____________________.习题二一、选择题1. 如下图所示的4棵二叉树中,( )不是完全二叉树.2.A.正确 B .不正确3.设高度为h 的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为 ( ).A .2h B. 2h-1 C .2h+1 O .h+l4.已知某二叉树后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是( ).A .acbed B.decab C.deabc D .cedba5.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值.这种说法( ).A .正确 B.不正确6.按照二叉树的定义,具有3个结点的二叉树有( )种形态A.3 B .4 C .5 D .67.深度为5的二叉树至多有( )个结点.A .16B .32C .21 D.108在一非空二叉树的中序遍历序列中,根结点的右边( ).A .只有右子树上的所有结点B .只有右子树上的部分结点C .只有左子树上的部分结点 D.只有左子树上的所有结点9.树最适合用来表示( ).A .有序数据元素B .无序数据元素C .元素之间具有分支层次关系的数据D .元素之间无联系的数据10.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法( ).A .正确 B.不正确11.对于一个满二叉树,m 个树叶,n 个结点,深度为h ,则( ), A .n=h+m B. h+m=2n C .m=h-1 D .n=2h -112.在一个图中,所有顶点的度数之和等于所有边数的( )倍.A.1/2B.1C.2D.413.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍.A.1/2 B .1 C.2 D.414.一个有n 个顶点的无向图最多有( )条边.A .n B.n(n-1) C .n(n-1)/2 D .2n15.具有4个顶点的无向完全图有( )条边.A.6B.12 C .16 D .2016.具有6个顶点的无向图至少应有( )条边才能确保是一个连通图.A. 5B. 6 C . 7 D . 817.在一个具有n 个顶点的无向图中,要连通全部顶点至少需要( )条边.A. nB. n+1 C . n-1 D . n/218.对于一个具有n 个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是( ).A .n B.(n-1)2 C .n-1 D .n 219.对于一个具有n 个顶点和e 条边的无向图,若采用邻接矩阵表示,则表头向量的大小为(①);所有邻接表中的结点总数是(②).A .nB .n+l C. n-1 D.n+eA.e/2 B .e C .2e D.n+e20.已知一个图G(见下图),若从顶点a 出发按深度搜索法进行遍历,则可能得到的一种顶点序列为(①);按宽度搜索法进行遍历,则可能得到的一种顶点序列为(②).A .a, b ,e ,c ,d, fB .a ,c, f ,e ,b ,dC .a ,e ,b ,c ,f, dD .a ,e ,d ,f ,c ,bA .a, b, c ,e ,d ,fB .a, b, c, e, f, dC .a ,e ,b, c ,f ,dD .a ,c ,f, d ,e, b二、填空题1.指出树和二叉树的主要差别________________________________________________________ .2.深度为k 的完全二叉树至少存_________个结点.至多有______________个结点,若按自上而下,从左 到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是___________________________.3.在一棵二叉树中,度为零的结点的个数为n.,度为2的结点的个数为n2,则有 n0=___________________4.结点最少的树为__________________; 结点最少的二叉树为________________;一棵二叉树的第i 层最多有__________________个结点.5.现有按中序遍历二叉树的结果为abc ,则有__________________棵二叉树可以得到这一遍历结果;这些二叉树分别是:6.树有三种常用的存储方法:__________________、________________ ,______________8.n 个顶点的连通图至少有________________________条边.9. 在无向图G 的邻接矩阵A 中,若A[i][j]等于1,,则A[j][i]等于_________________.10.已知一个图的邻接矩阵表示,计算第 i 个结点的入度的方法是_____________________________11.已知一个图的邻接矩阵表示,删除所有从第i 个结点出发的边的方法是____________________________12.已知无向图G 的邻接链表如下图所示,求:(1)画出对应的无向图G 。
数据结构(图)习题与答案
![数据结构(图)习题与答案](https://img.taocdn.com/s3/m/7c9eb9ada98271fe900ef95c.png)
一、单选题1、设有5个结点的无向图,该图至少应有_________条边才能确保是一个连通图。
A.7B.8C.6D.5正确答案:A2、设图G=(V,VR),其中: V={A,B,C,D,G},VR={(A,C),(A,D),( B,C),(B,D) ,(G,C),(B,G)},则对应的图形为_________。
A.B.C.D.正确答案:C3、设某有向图中有n个顶点,则该有向图对应的邻接表中有_________个表头结点。
A.n-1B.n+2C.nD.n+1正确答案:C4、在一个无向图中所有顶点的度数之和等于所有边数的_________倍。
A.1B.2C.3D.1/2正确答案:B5、一个无向连通图的生成树是该连通图的_____。
A.极小连通子图B.强连通子图C.连通子图D.极大连通子图正确答案:A6、设某无向图中有n个顶点,则该无向图邻接矩阵的大小是_________。
A.n(n+1)/2B.(n-1)2C. n2D. (n+1)2正确答案:C7、设有n个顶点e条边的无向图,采用邻接矩阵作为物理结构,则删除与某顶点Vi 关联的所有边算法的时间复杂度为_________。
A.O(n2)B.O(n+e)C.O(n*e)正确答案:D8、设有n个顶点e条弧的有向图,采用邻接表作为物理结构,则求某顶点Vi度的算法的时间复杂度为_________。
A.O(n)B.O(n*e)C.O(n+e)D.O(n2)正确答案:C9、设无向图G=(V,E)和G'=(V',E'),如果G'是G的生成树,则下列说法中错误的是_____。
A.G'是G的连通分量B.G'是G的一个无环子图C.G'是G的极小连通子图且V=V'D.G'是G的子图正确答案:A10、设G是一个非连通的无向图,共有10条边,则该图至少有_____个顶点。
A.7B.6C.5D.8正确答案:B11、 n个顶点的有向图为强连通图时,至少含有________。
数据结构练习题及部分答案
![数据结构练习题及部分答案](https://img.taocdn.com/s3/m/2a28bb2d336c1eb91a375dcf.png)
第一章绪论一.选择题1.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。
①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系2.算法分析的目的是①,算法分析的两个主要方面是②。
①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性②A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性3.在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为A.逻辑结构B.顺序存储结构C.链表存储结构D.以上都不对4.数据结构中,在逻辑上可以把数据结构分成:( )。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构5.以下属于顺序存储结构优点的是()。
A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示6.数据结构研究的内容是()。
A.数据的逻辑结构B.数据的存储结构C.建立在相应逻辑结构和存储结构上的算法D.包括以上三个方面7.链式存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B.只有一部分,存放结点值C.只有一部分,存储表示结点间关系的指针D.分两部分,一部分存放结点值,另一部分存放结点所占单元数8.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。
(1)A. 计算方法 B.排序方法C. 解决问题的有限运算序列D.调度方法(2)A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性9.以下关于数据的逻辑结构的叙述中正确的是()。
A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构10.算法分析的主要任务是()。
数据结构的试题及答案
![数据结构的试题及答案](https://img.taocdn.com/s3/m/67e4d29e710abb68a98271fe910ef12d2bf9a918.png)
数据结构的试题及答案一、选择题(每题2分,共10分)1. 在数据结构中,()是数据元素之间的相互关系的集合。
A. 数据B. 结构C. 存储结构D. 逻辑结构答案:D2. 线性表的顺序存储结构中,存储元素的物理位置是()。
A. 连续的B. 离散的C. 任意的D. 无关的答案:A3. 在二叉树的遍历方法中,先访问根节点,然后遍历左子树,最后遍历右子树的遍历方式是()。
A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法中,()是将所有发生冲突的元素存储在同一个链表中。
A. 线性探测B. 链地址法C. 再散列D. 双散列答案:B5. 在图的遍历算法中,深度优先搜索(DFS)算法使用的辅助数据结构是()。
A. 栈B. 队列C. 链表D. 数组答案:A二、填空题(每题2分,共10分)1. 在数据结构中,算法的时间复杂度通常用()表示。
答案:O(n)2. 一个栈的初始状态为空,依次执行了Push(1), Push(2), Pop(), Push(3), Pop()操作后,栈顶元素是()。
答案:13. 在二叉搜索树中,对于任意节点,其左子树中的所有值都()该节点的值。
答案:小于4. 哈希表的装载因子是表中已填入的元素个数与哈希表的()之比。
答案:总容量5. 图的邻接矩阵表示法中,如果两个顶点之间有边相连,则对应的矩阵元素值为()。
答案:1三、简答题(每题5分,共20分)1. 请简述什么是递归,并给出一个递归算法的例子。
答案:递归是一种算法设计技巧,它允许一个函数直接或间接地调用自身。
递归算法的例子是计算阶乘:n! = n * (n-1)!,其中n! = 1当n=0时。
2. 请解释什么是堆排序,并简述其基本步骤。
答案:堆排序是一种基于堆数据结构的比较排序算法。
基本步骤包括构建最大堆,然后重复移除堆顶元素并调整剩余元素以保持最大堆属性。
3. 请描述什么是图的广度优先搜索(BFS)算法,并给出其算法步骤。
数据结构习题(含答案)
![数据结构习题(含答案)](https://img.taocdn.com/s3/m/d7aae1c45ef7ba0d4a733b61.png)
第一章绪论一、填空题1.数据是描述客观事物的数、字符以及所有能输入到计算机且能够被计算机程序加工处理的符号集合。
_________是数据的基本单位;___________是数据的最小单位。
通常被计算机加工处理的数据不是孤立无关的,而是彼此之间存在着某种联系,将这种数据间的联系称为________。
2.数据结构进行形式化定义时,可以从逻辑上认为数据结构DS是_________的集合D和D上_________的集合R所构成的二元组:DS=(D,R)。
3.已知某数据结构的二元组形式表示为:A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>}。
则此数据结构属于_____________结构。
4.一个算法的时间复杂度通常用问题规模大小的函数来表示,当一个算法的时间复杂度与问题规模n大小无关时,则表示为__________;成正比关系时,则表示为___________;成对数关系时,则表示为___________;成平方关系时,则表示为__________。
5.数据结构的逻辑结构包括_____________、树型结构和图型结构三种类型,其中树型结构和图型结构合称为_____________;数据结构的存储结构主要包括____________和____________两种类型。
6.线性结构的特点是:第一个结点_______前驱结点,其余结点有且仅有_______个前驱结点;最后一个结点_______后继结点,其余每个结点有且仅有_______个后继结点。
7.树型结构的特点是:根结点没有________结点,其余每个结点有且仅有________个前驱结点;叶子结点_________后继结点,其余结点可以有_________个后继结点。
数据结构作业题
![数据结构作业题](https://img.taocdn.com/s3/m/3e7f7c3ece2f0066f4332266.png)
数据结构作业题(总15页) -本页仅作为预览文档封面,使用时请删除本页-第一章1、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。
(1) i=1; k=0;while(i<n){ k=k+10*i;i++;}(2) i=0; k=0;do{k=k+10*i; i++;}while(i<n);(3) i=1; j=0;while(i+j<=n){if (i>j) j++;else i++;}(4)x=n; 编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。
当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。
两个栈均从两端向中间增长。
当向第0号栈插入一个新元素时,使top[0]增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top[1]减1得到新的栈顶位置。
当top[0]+1 == top[1]时或top[0] == top[1]-1时,栈空间满,此时不能再向任一栈加入新的元素。
试定义这种双栈(Double Stack)结构的类型定义,并实现初始化、判栈空、判栈满、插入、删除算法。
0 m-1【提示】类型定义:#define m 100;Typedef int dsType;试利用算符优先法,画出对如下中缀算术表达式求值时运算符栈和操作数栈的变化。
a +b * (c - d) – e# (#表示结束符)第四章设有模式串T1,T2,T1=‘aaab’,T2=‘abcabaa’,目标串s为‘abc aaabbabcabaacbacba’,(1)计算模式串T1的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。
(2)计算模式串T2的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。
《数据结构》(第三版)习题 (2)[2页]
![《数据结构》(第三版)习题 (2)[2页]](https://img.taocdn.com/s3/m/863950422f3f5727a5e9856a561252d380eb204c.png)
习题2一.选择题1.线性表是具有n个()的有限序列(n>0)。
A. 表元素B.字符C.数据元素D.数据项2. 线性表的顺序存储结构是一种()的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.HASH 存取3. 在一个长度为n的顺序表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需向后移动()个元素。
A. n-1B. n-i+1C. n-i-1D. i4. 在一个长度为n的顺序表中,设在任何位置上的删除操作都是等概率的,删除一个元素时大约要移动表中的()个元素。
A. n+1B. n-1C. (n-1)/2D. n5.若线性表采用顺序存储结构,每个元素占用 4 个存储单元,第一个元素的存储地址为 100,则第 12 个元素的存储地址是()。
A.112 B.144 C.148 D.4126.在一个长度为 n 的顺序表的任一位置插入一个新元素的时间复杂度为()。
A. O(n)B.O(n/2)C. O(1)D.O(n2)7.在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q和*p之间插入*s结点,则执行()。
A. s->next=p->next; p->next=s;B. p->next=s->next; s->next=p;C. q->next=s; s->next=p;D. p->next=s; s->next=q;8.设指针p指向单链表中某结点(数据域为m),指针f指向将要插入的新结点(数据域为x),当x插在结点m之后时,只要先修改()后修改p->next=f即可。
A. f->next=p;B. f->next=p->next;C. p->next=f->next;D. f=NULL;9.下面关于线性表的叙述错误的是()。
A.线性表采用顺序存储必须占用一片连续的存储空间B.线性表采用链式存储不必占用一片连续的存储空间C.线性表采用链式存储便于插入和删除操作的实现D.线性表采用顺序存储便于插入和删除操作的实现10.在具有n个结点的有序单链表中插入一个新结点,并使链表仍然有序的算法的时间复杂度是()。
数据结构习题(含答案)
![数据结构习题(含答案)](https://img.taocdn.com/s3/m/34aca67cf56527d3240c844769eae009581ba21b.png)
一、单选题(每小题3分,共30分)1.在逻辑上可以把数据结构分成。
( ) A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.串是_________。
( ) A.不少于一个字母的序列B.任意个字母的序列C.不少于一个字符的序列D.有限个字符的序列3.在n个元素的顺序表中,时间复杂度是O(1)的操作是______。
( ) A.获得第i个数据元素值B.查找给定值C.在第i个位置上插入数据元素D.删除第i个数据元素4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址________。
( )A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以5.单链表中,在p结点之后插入q结点,操作的语句为。
( ) A.q->next=p->next,p->next=q B.p=q->next,q->next=pC.p->next=q->next,q->next=p D.q=p->next,p->next=q6.栈中数据元素的插入和删除操作是在表的进行的。
( )A.一端B.两端C.中间D.任意位置7.队列的特点是。
( )A.先进先出B.后进先出C.先进后出D.随机存取8.树中结点A有3个兄弟,结点B是A的双亲,则B的度是。
( )A.1B.2C.3D.49.下面关于图的存储结构的叙述中正确的是____________。
( )A.用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关B.用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关C.用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关D.用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关10.对于不带权的有向图,其邻接矩阵的每一列包含的“1”的个数为。
( )A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目二、判断题(每小题1分,共10分)对于正确的说法,请在题前的括号内打√,错误的说法则打×。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf(n);
}
A.有穷性 B.确定性 C.可行性 D.健壮性
-A
第2章 线性表
选择:(清华大学1998)
线性表是具有n个( )的有限序列
A.表元素 B.字符 C.数据元素 D.数据项 E.信息项
-C
选择:(中国科技大学1998)
将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是( )
A.p->next=p->next->next
B.p=p->next;p->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
-A
选择:(软件设计师2005)
循环链表的主要优点是( )
A.不再需要头指针了
B.已知某个结点的位置后,能很容易找到它的直接前驱结点
C.在进行删除操作后,能保证链表不断开
D.从表中任一结点出发都能遍历整个链表
-D
第3章 栈和队列
选择:(程序员2005)
PUSH和POP命令常用于( )操作
A.队列 B.数组 C.栈 D.记录
-C
选择:(程序员2004)
v=concat(s, concat(b, concat(t, concat(b, u))))
试问:s, t, u, v, length(s), index(v,g), index(u,g)各是什么?
选择:(中科院2000)
设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列
A.1,2,4,3 B.2,1,3,4 C.1,4,3,2 D.4,3,1,2 E.3,2,1,4
-D
简答:(武汉理工2002)
A、B、C三个元素进栈S的次序是A、B、C,利用Push(S,X),Pop(S)表示入栈、出栈操作,写出所有可能的出栈序列和获得每个序列的相应操作,并指明哪个序列不会是出栈序列。
-D
已知a='this',b=' ',c='good',d='ne',f='a sample',g='is'
s=concat(a, concat(substr(f,2,7), concat(b, substr(a,3,2))))
t=replace(f, substr(f,3,6), c)
u=concat(substr(c,3,1), d)
选择:(武汉理工2002)
指针P所指的元素是双向循环链表L的尾元素的条件是( )
A.P=L B.P=NULL C.P->Link=L D.P->Rlink=L
-D
判断:(武汉理工2002)
一个循环链表可以由所给定的头指针或者尾指针惟一地确定。
-对
算法:(武汉理工2002)
-5
-9
选择;(南京理工2002)
循环队列A[0..m-1]存放其元素,用front和rear分别表示队头和队尾,则循环队列满的条件是( )
A.(Q.rear+1)%m==Q.front B.Q.rear==Q.front+1
读过一本好书,像交了一个益友。——藏克家
数据的逻辑结构在计算机存储中的映像(或表示)通常有几种方法?
-顺序映像和非顺序映像
线性结构和树性结构的特点分别是什么?
-结构中的数据元素之间存在一个对一个的关系
-结构中的数据元素之间存在一个对多个的关系
选择:(武汉理工2002)
算法在发生非法操作时可以作出处理的特性称为( )
写一个算法,建立双向循环链表
简答:(南京理工2002)
写出在双向链表指针P之后插入结点S的操作序列
-s->right=p->right;if(p->right) p->right->left=s; s->left=p; p->right=s
选择:(南京理工2002)
在一个单链表中,若删除P结点的后继结点,则( )
读过一本好书,像交了一个益友。——藏克家
《数据结构》精选习题集粹
参考书目:
[1]全国计算机技术与软件专业技术资格(水平)考试2004、2005上半年试题分析与解答
清华大学出版社
-集合
-线性结构
-树形结构
-图结构
选择:(中科院2001)
计算机算法必须具备输入、输出、( )等5个特性。
A.可行性、可移植性和可扩展性 B.可行性、确定性和有穷性
C.确定性、有穷性和稳定性 D.易读性、安全性和稳定性
-B
问答:(北京科技大学2002)
读过一本好书,像交了一个益友。——藏克家
问答:(北京航空1998)
若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?为什么?
-链式存储结构
算法:(北京工业大学1998)
写出在双向链表da中的插入操作算法,算法中插入位置的获取可以直接引用getnodep(da,I),其中参数da为双向链表,i是要插入的数据,要求算法中含有双向链表da的结点结构描述。
判断一个表达式中左右括号是否匹配,采用( )实现较为方便
A.线性表的顺序存储 B.队列 C.线性表的链式存储 D.栈
-D
选择:(清华大学1998)
用单链表表示的链式队列的对头在链表的( )位置
A.链头 B.链尾 C.链中
-A
要求写出得到上述结果串S所用的函数及执行算法。
-算法核心部分:
i1=index(s,s1,1);
i2=index(s,s2,1)+3;
t1=substring(s,i1,strlength(s)-i1+1);
t2=substring(s,i2,strlenght(s)-i2+1);
t3=concat(t1,t2);
[2]梁作娟等编著,数据结构习题解答与考试指导,清华大学出版社
第1章 绪论
判断:(中科院1999)
顺序存储方式只能用于存储线性结构。
顺序查找法适用于存储结构为顺序或链接存储的线性表。
-错
-对
填空:(中科院1999)
对于给定的n个元素,可以构造出的逻辑结构有( )、( )、( )、( )四种。
C.紧凑结构和非紧凑结构 D.内部结构和外部结构
-B
名词解释:(武汉大学2002)
数据对象 物理结构 空间复杂度
选择:(2005程序员)
数据结构主要研究数据的( )
A.逻辑结构 B.存储结构
C.逻辑结构和存储结构 D.逻辑结构和存储结构及其运算的实现
A.n B.2n-1 C.2n D.n-1
-A
问答:(北京航空1998)
在非空双向循环表中q所指的结点后面插入p所指的结点的过程已经依次进行了3步:p->llink:=q;p->rlink:=q->rlink;q->rlink:=p;第4步应是什么动作?
-q->rlink.llink:=p
-CBA BCA ACB ABC BAC
-CAB
简答:(南京理工2002)
在操作序列push(1),push(2),pop,push(5),push(7),pop,push(6)之后,栈顶元素和栈底元素分别是什么?
-6
-1
简答:(南京理工2002)
在操作序列Qinsert(1),Qinsert(2),Qdelete,Qinsert(5),Qinsert(7),Qdelete,Qinsert(9)之后,队头元素和队尾元素分别是什么?
-D
选择;(2004程序员)
为了描述n个人之间的同学关系,可用( )结构表示
A.线性表 B.树 C.图 D.队列
-B
选择:(2004软件设计师)
下面的程序段违反了算法的( )原则
void sam()
{ int n=2;
while (!odd(n)) n+=2;
判断:(中科院1999)
栈和队列都是限制取点的线性结构
-正确
判断:(中国科技大学1998)
消除递归不一定需要使用栈
-正确
判断:(清华大学2002)
栈、先进先出队列、优先级队列、双端队列等都可以看作是构。
-正确
算法:(中科院2000)
设有两个串p和q,求q在p中首次出现的位置的运算称作( )
A.连接 B.模式匹配 C.求子串 D.求串长
-B
设s1='ABCDEFG',s2='PQRST',con(subs(s1,2,len(s2)), subs(s1,len(s2),2))的结果串是( )
A.BCDEF B.BCDEFG C.BCPQRST D.BCDEFEF
简答:(北京科技大学2002)
设单链表中结点的数据域为data,指针域为next,指针p为表中某一结点的地址,请写出在p结点之前插入一个s结点的C语言描述语句。