李春葆《数据结构教程》(C++语言描述)模拟试题及详解(一~二)【圣才出品】

合集下载

李春葆《数据结构教程》(第4版)模拟试题及详解(一)(圣才出品)

李春葆《数据结构教程》(第4版)模拟试题及详解(一)(圣才出品)

第四部分模拟试题李春葆《数据结构教程》(第4版)模拟试题及详解(一)一、单项选择题(每小题2分,共20分)1.队列的特点是()。

A.先进后出B.先进先出C.任意位置进出D.前面都不正确【答案】B2.有n个记录的文件,如关键字位数为d,基数为r,则基数排序共要进行()遍分配与收集。

A.nB.dC.rD.n-d【答案】B【解析】基数排序是按组成关键字的各位值进行分配收集而完成的。

3.在二叉树节点的先序序列、中序序列和后序序列中,所有叶子节点的先后顺序()。

A.都不相同B.完全相同C.先序和中序相同,而与后序不同D.中序和后序相同,而与先序不同【答案】B【解析】无论是哪种遍历方式,遍历叶子节点时,都是先访问左子树,后访问右子树。

4.限定在一端加入和删除元素的线性表称为()。

A.双向链表B.单向链表C.栈D.队列【答案】C【解析】根据栈后进先出的特性,可见栈都在一端对元素进行操作。

5.设内存工作区可容纳8个记录,初始文件共有64个关键字不同的记录,且已按关键字递减排列,如用置换.选择排序产生初始归并段,最长初始归并段所含记录数是()。

A.6B.7C.8D.9【答案】C【解析】对于置换选择排序,输入的文件是以关键字降序排列时,所得的初始归并段的最大长度为工作区的大小。

当输入的文件以关键字的升序排序时,只能得到一个长度为文件长度的初始归并段。

6.设森林F对应的二叉树为B,它有m个节点,B的根为p,p的右子树上的节点个数为n,森林F中第一棵树的节点个数是()。

A.m-n-1B.n+lC.m-n+1D.m-n【答案】D7.设有198个初始归并段,如采用K-路平衡归并三遍完成排序,则K值最大为()。

A.12B.13C.14D.15【答案】C【解析】k一路平衡归并,归并趟数公式s=[1og k m],m指归并段数,s指趟数。

要三遍完成遍历,那就看两遍完成排序的需遍历的最小数。

把s=2和m=198带入公式,可知两遍完成排序时k最小为15,所以k<15。

李春葆《数据结构教程》(C++语言描述)模拟试题及详解(一)

李春葆《数据结构教程》(C++语言描述)模拟试题及详解(一)

李春葆《数据结构教程》(C++语⾔描述)模拟试题及详解(⼀)李春葆《数据结构教程》(C++语⾔描述)模拟试题及详解(⼀)⼀、单项选择题(每⼩题2分,共20分)1.队列的特点是()。

A.先进后出B.先进先出C.任意位置进出D.前⾯都不正确【答案】B2.有n个记录的⽂件,如关键字位数为d,基数为r,则基数排序共要进⾏()遍分配与收集。

A.nB.dC.rD.n-d【答案】B【解析】基数排序是按组成关键字的各位值进⾏分配收集⽽完成的。

3.在⼆叉树节点的先序序列、中序序列和后序序列中,所有叶⼦节点的先后顺序()。

A.都不相同B.完全相同C.先序和中序相同,⽽与后序不同D.中序和后序相同,⽽与先序不同【答案】B【解析】⽆论是哪种遍历⽅式,遍历叶⼦节点时,都是先访问左⼦树,后访问右⼦树。

4.限定在⼀端加⼊和删除元素的线性表称为()。

A.双向链表B.单向链表C.栈D.队列【答案】C【解析】根据栈后进先出的特性,可见栈都在⼀端对元素进⾏操作。

5.设内存⼯作区可容纳8个记录,初始⽂件共有64个关键字不同的记录,且已按关键字递减排列,如⽤置换.选择排序产⽣初始归并段,最长初始归并段所含记录数是()。

A.6B.7C.8D.9【答案】C【解析】对于置换选择排序,输⼊的⽂件是以关键字降序排列时,所得的初始归并段的最⼤长度为⼯作区的⼤⼩。

当输⼊的⽂件以关键字的升序排序时,只能得到⼀个长度为⽂件长度的初始归并段。

6.设森林F对应的⼆叉树为B,它有m个节点,B的根为p,p的右⼦树上的节点个数为n,森林F中第⼀棵树的节点个数是()。

A.m-n-1B.n+lC.m-n+1D.m-n【答案】D7.设有198个初始归并段,如采⽤K-路平衡归并三遍完成排序,则K值最⼤为()。

A.12B.13C.14D.15【答案】C【解析】k⼀路平衡归并,归并趟数公式s=[1og k m],m指归并段数,s指趟数。

要三遍完成遍历,那就看两遍完成排序的需遍历的最⼩数。

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(线性表)

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(线性表)
(10)以下关于链表的叙述中,不正确的是______。 A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构 B.逻辑上相邻的元素物理上不必相邻 C.可以通过计算直接确定第 i 个结点的存储地址 D.插入、删除运算操作方便,不必移动结点 【答案】C 【解析】链表每个元素的存储地址是随机分配的,通过指针相连接,因此不能通过结算 直接缺点第 i 个结点的位置。
项;插入和删除操作不需要移动元素,则必须采取链表存储结构。
(12)不带头结点的单链表 head 为空的判定条件是______。 A.head=NULL B.head->next=NULL C.head->nex=head D.head!=NULL 【答案】A 【解析】由于单链表不带有头结点,其头指针所指向的元素即为第一个元素,因此只要 判断头指针指向元素为 NULL 即可知链表为空。
3 / 29
圣才电子书 十万种考研考证电子书、题库视频学习平台

杂,也不能实现随机读取元素,同时存储密度较低因而浪费存储空间。
(7)当线性表采用链表存储时,其存放元素的单元地址______。 A.必须是连续的 B.一定是不连续的 C.部分地址必须是连续的 D.连续与否均可以 【答案】D 【解析】线性表的采用链表存储,用指针记录对应元素的位置,对元素的存储位置没有 任何要求。
(13)某线性表最常用的操作是在最后一个结点之后插入一个结点或删除第一个结点, 故采用______存储方式最节省运算时间。
2 / 29
圣才电子书

为 Ο(n),D 项错误。
十万种考研考证电子书、题库视频学习平台
(5)将两个各有 n 个元素的递增有序顺序表归并成一个有序顺序表,其最少的比较次 数是______。

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(串)

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(串)

{
i=ch-'A'+10;
num[i]++;
}
}
(2)设计一个算法,将一个链串 S 中的所有子串”abc”删除。 答: String deleteabc(String S) {
String t=’abc’; String nstr; int i=0,j=0,k=0;
6 / 11
圣才电子书 十万种考研考证电子书、题库视频学习平台
(2)以下______是“abcd32lABCD”串的子串。 A.abcd B.B21AB C.”abcABC” D.“21AB” 【答案】D 【解析】串需要用引号引起来,没有引号的只是字符的罗列而不是串,因此 AB 项错误; 由在一个串中由任意连续的字符组成的子序列称为该串的子串可知,C 项中字符串并不包含
②对于模式串 t(t=t0t1…tm-1),求 next 数组时,next[i]在什么条件下取-1。 答:当 i=0 时,即 next[0]=-1。
(4)设目标串为 s=“abcaabbcaaabababaabca”,模式串为 p=“babab”。 ①计算模式 P 的 答:-1,0,1,2,0。 ②不写算法,只画出利用 KMP 算法进行模式匹配时的每一趟的匹配过程。
二、问答题 (1)若 s1 和 s2 为串,给出使 s1//s2=s2//s1 成立的所有可能的条件(其中,“//” 表示两个串连接的运算符)。 答:①s1 和 s2 之中至少有一个为空串 ②s1 和 s2 的值相等 ③s1 和 s2 之中某一个串可由另一个串经过重复得到。
3 / 11
圣才电子书 十万种考研考证电子书、题库视频学习平台
1 / 11
圣才电子书 十万种考研考证电子书、题库视频学习平台

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(外排序)

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(外排序)

第10章外排序一、单项选择题(1)以下关于外排序的叙述正确的是______。

A.外排序把外存文件调入内存,再利用内排序方法进行排序,所以外排序所花的时间完全由采用的内排序确定B.外排序所花的时间=内排序时间+外存信息读/写时间+内部归并所花的时间C.外排序并不涉及文件的读/写操作D.外排序完全可以由内排序来替代【答案】B【解析】外排序所花的时间由内排序时间、外存读写时间、内部归并时间三部分时间构成,因此AC两项错误,B项正确;外排序要将文件读取到内存中进行排序,但是由于文件大小可能会大于内存的最大容量,因此外排序不能完全由内排序替代。

(2)如果将一个由置换-选择排序得到的输出文件F1(含所有初始归并段)作为输入文件再次进行置换-选择排序,得到输出文件F2(含所有初始归并段),则F1和F2的差异是______。

A.F2中归并段的个数减少B.F2中归并段的最大长度增大C.F2和F1无差异D .归并段个数及各归并段长度均不变,但F 2中可能存在与F 1不同的归并段【答案】C 【解析】当进行一次置换-选择排序后,文件的归并段即达到理想状态,无论再进行多少次排序,均不会发生变化,因此答案为C 项。

(3)采用败者树进行k 路平衡归并的外排序算法,其总的归并效率与k______。

A .有关B .无关【答案】A【解析】利用败者树进行k 路平衡归并不会影响总共需要的关键字比较次数,但是随着k 的增大,归并树的高度会减小,磁盘读/写的次数也就相应减少,从而提高总的归并效率,因此答案为A 项。

(4)对m 个初始归并段实施k 路平衡归并排序,所需的归并趟数是______。

A .1B .m/kC ./m k ⎡⎤⎢⎥D .log k m ⎡⎤⎢⎥【答案】D【解析】采用k 路归并,相应的归并树就有log k m ⎡⎤⎢⎥+1层,则需要归并的趟数为log k m ⎡⎤⎢⎥,答案为D 项。

(5)设有100个初始归并段,如果采用k 路平衡归并3趟完成排序,则k 值最小是______。

李春葆《数据结构教程》(第4版)课后习题-第一章至第十二章(圣才出品)

李春葆《数据结构教程》(第4版)课后习题-第一章至第十二章(圣才出品)

第二部分课后习题第1章绪论1.简述数据与数据元素的关系与区别。

答:凡是能被计算机存储、加工的对象统称为数据,数据是一个集合。

数据元素是数据的基本单位,是数据的个体。

数据与元素之间的关系是元素与集合之间的关系。

2.数据结构和数据类型有什么区别?答:数据结构是互相之间存在一种或多种特定关系的数据元素的集合,一般包括三个方面的内容,即数据的逻辑结构、存储结构和数据的运算。

而数据类型是一个值的集合和定义在这个集合上的一组运算的总称,如C语言中的int数据类型是由-32768~32767(16位机)的整数和+、-、*、/、%等运算符组成。

3.设3个表示算法频度的函数f、g和h分别为:f(n)=100n3+n2+1000g(n)=25n3+5000n2h(n)=n1.5+5000nlog2n求它们对应的时间复杂度。

答:f(n)=100n3+n2+1000=O(n3),g(n)=25n3+5000n2=O(n3),当n→∞时,√n>log2n,所以h(n)=n1.5+5000nlog2n=O(n1.5)。

4.用C/C++语言描述下列算法,并给出算法的时间复杂度。

(1)求一个n阶方阵的所有元素之和。

(2)对于输入的任意三个整数,将它们按从小到大的顺序输出。

(3)对于输入的任意n个整数,输出其中的最大和最小元素。

答:(1)算法如下:本算法的时间复杂度为O(n2)。

(2)算法如下:本算法的时间复杂度为O(1)。

(3)算法如下:本算法的时间复杂度为O(n)。

5.设n为正整数,给出下列各种算法关于n的时间复杂度。

(1)(2)(3)答:(1)设while循环语句执行次数为T(n),则:(2)算法中的基本运算语句是if(b[k]>b[j])k=j,其执行次数T(n)为:(3)设while循环语句执行次数为T(n),则:则6.有以下递归算法用于对数组a[i..j]的元素进行归并排序:求mergesort(a,0,n-1)的时间复杂度。

李春葆《数据结构教程》(第4版)课后习题-绪论(圣才出品)

李春葆《数据结构教程》(第4版)课后习题-绪论(圣才出品)

第二部分课后习题第1章绪论1.简述数据与数据元素的关系与区别。

答:凡是能被计算机存储、加工的对象统称为数据,数据是一个集合。

数据元素是数据的基本单位,是数据的个体。

数据与元素之间的关系是元素与集合之间的关系。

2.数据结构和数据类型有什么区别?答:数据结构是互相之间存在一种或多种特定关系的数据元素的集合,一般包括三个方面的内容,即数据的逻辑结构、存储结构和数据的运算。

而数据类型是一个值的集合和定义在这个集合上的一组运算的总称,如C语言中的int数据类型是由-32768~32767(16位机)的整数和+、-、*、/、%等运算符组成。

3.设3个表示算法频度的函数f、g和h分别为:f(n)=100n3+n2+1000g(n)=25n3+5000n2h(n)=n1.5+5000nlog2n求它们对应的时间复杂度。

答:f(n)=100n3+n2+1000=O(n3),g(n)=25n3+5000n2=O(n3),当n→∞时,√n>log2n,所以h(n)=n1.5+5000nlog2n= O(n1.5)。

4.用C/C++语言描述下列算法,并给出算法的时间复杂度。

(1)求一个n阶方阵的所有元素之和。

(2)对于输入的任意三个整数,将它们按从小到大的顺序输出。

(3)对于输入的任意n个整数,输出其中的最大和最小元素。

答:(1)算法如下:本算法的时间复杂度为O(n2)。

(2)算法如下:本算法的时间复杂度为O(1)。

(3)算法如下:本算法的时间复杂度为O(n)。

5.设n为正整数,给出下列各种算法关于n的时间复杂度。

(1)(2)(3)答:(1)设while循环语句执行次数为T(n),则:(2)算法中的基本运算语句是if(b[k]>b[j])k=j,其执行次数T(n)为:(3)设while循环语句执行次数为T(n),则:则6.有以下递归算法用于对数组a[i..j]的元素进行归并排序:求mergesort(a,0,n-1)的时间复杂度。

数据结构答案李春葆第1章绪论

数据结构答案李春葆第1章绪论

第1章绪论教材中练习题及参考答案1. 简述数据与数据元素的关系与区别。

答:凡是能被计算机存储、加工的对象统称为数据,数据是一个集合。

数据元素是数据的基本单位,是数据的个体。

数据元素与数据之间的关系是元素与集合之间的关系。

2. 采用二元组表示的数据逻辑结构S=<D,R>,其中D={a,b,…,i},R={r},r={<a,b>,<a,c>,<c,d>,<c,f>,<f,h>,<d,e>,<f,g>,<h,i>},问关系r是什么类型的逻辑结构?哪些结点是开始结点,哪些结点是终端结点?答:该逻辑结构为树形结构,其中a结点没有前驱结点,它是开始结点,b、e、i和g、结点没有后继结点,它们都是终端结点。

3. 简述数据逻辑结构与存储结构的关系。

答:在数据结构中,逻辑结构与计算机无关,存储结构是数据元素之间的逻辑关系在计算机中的表示。

存储结构不仅将逻辑结构中所有数据元素存储到计算机内存中,而且还要在内存中存储各数据元素间的逻辑关系。

通常情况下,一种逻辑结构可以有多种存储结构,例如,线性结构可以采用顺序存储结构或链式存储结构表示。

4. 简述数据结构中运算描述和运算实现的异同。

答:运算描述是指逻辑结构施加的操作,而运算实现是指一个完成该运算功能的算法。

它们的相同点是,运算描述和运算实现都能完成对数据的“处理”或某种特定的操作。

不同点是,运算描述只是描述处理功能,不包括处理步骤和方法,而运算实现的核心则是设计处理步骤。

5. 数据结构和数据类型有什么区别?答:数据结构是相互之间存在一种或多种特定关系的数据元素的集合,一般包括三个方面的内容,即数据的逻辑结构、存储结构和数据的运算。

而数据类型是一个值的集合和定义在这个值集上的一组运算的总称,如C语言中的short int数据类型是由-32768~32767(16位机)的整数和+、-、*、/、%等运算符构成。

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(查 找)

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(查  找)
(9)含有 20 个结点的 AVL 树的最小高度是______。 A.4 B.5 C.6 D.7
4 / 14
圣才电子书

【答案】B
十万种考研考证电子书、题库视频学习平台
【解析】与(8)同理可知答案为 B 项。
(10)在一棵 rn-阶 B 树中,有 k 个孩子结点的非叶子结点恰好包含______关键字。 A.k+1 B.k C.k-1 D.m/2 【答案】C 【解析】按照 B-树的定义可知,有 k 个孩子结点的非叶子节点应该有 k-1 个关键字, 答案为 C 项。
大高度应为 log2 (2047 1) 1 12 ,答案为 B 项。
(13)在以下查找方法中,查找效率与记录个数 n 无直接关系的是______。 A.顺序查找 B.折半查找 C.哈希查找 D.二叉排序树查找 【答案】C 【解析】哈希查找时的平均查找长度不是元素个数 n 的函数,而是装填因子 a 的函数。 因此答案应为 C 项。
(2)在对线性表进行折半查找时,要求线性表必须______。 A.以顺序方式存储 B.以链接方式存储 C.以顺序方式存储,且结点按关键字有序排序 D.以链表方式存储,且结点按关键字有序排序 【答案】C 【解析】对线性表进行折半查找时要求线性表必须以顺序方式存储,且结点按关键字有
1 / 14
圣才电子书 十万种考研考证电子书、题库视频学习平台
(7)一棵二叉排序树是由关键字集合{18,43,27,44,36,39}构建的,其中序遍 历序列是______。
3 / 14
圣才电子书 十万种考研考证电子书、题库视频学习平台

A.树形未定,无法确定 B.18,43,27,77,44,36,39 C.18,27,36,39,43,44,77 D.77,44,43,39,36,27,18 【答案】C 【解析】二叉排序树的中序遍历即为有序递增序列,因此答案应为 C 项。

李春葆《数据结构教程》笔记和课后习题详解-第一章至第二章【圣才出品】

李春葆《数据结构教程》笔记和课后习题详解-第一章至第二章【圣才出品】

第1章绪论1.1复习笔记一、数据结构1.概述(1)计算机对具体问题的处理在用计算机解决一个具体的问题时,大致需要经过以下几个步骤:①分析问题,确定数据模型。

②设计相应的算法。

③编写程序,运行并调试程序,直至得到正确的结果。

(2)数据的含义①数据是描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合。

从计算机的角度看,数据是所有能被输入到计算机中,且能被计算机处理的符号的集合。

它是计算机操作的对象的总称,也是计算机所处理信息的某种特定的符号表示形式。

②数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,有些情况下数据元素也称为元素、结点、记录等。

一个数据元素可以由若干个数据项组成。

数据项是具有独立含义的数据的最小单位,也称为域。

③数据对象是性质相同的有限个数据元素的集合,它是数据的一个子集。

默认情况下,数据结构中的数据指的都是数据对象。

(3)数据结构的定义数据结构是指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在特定关系的数据元素的集合,因此,可时把数据结构看成是带结构的数据元素的集合。

数据结构包括以下几个方面:①数据元素之间的逻辑关系,即数据的逻辑结构,它是数据结构在用户面前呈现的形式。

数据的逻辑结构是从逻辑关系(主要指数据元素的相邻关系)上描述数据的,它与数据的存储无关,是独立于计算机的。

因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

②数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构。

数据的存储结构是逻辑结构用计算机语言的实现或在计算机中的表示(也称为映像),也是指逻辑结构在计算机中的存储方式,它是依赖于计算机语言的。

一般情况下,只在高级语言(如C、C++、Java语言)的层次上讨论存储结构。

③施加在该数据上的操作,即数据的运算。

数据的运算是定义在数据的逻辑结构之上的,每种逻辑结构都有一组相应的运算。

(NEW)李春葆《数据结构教程》(C++语言描述)配套题库【名校考研真题+课后习题+章节题库+模拟试题】

(NEW)李春葆《数据结构教程》(C++语言描述)配套题库【名校考研真题+课后习题+章节题库+模拟试题】
7 三个进程共享四个同类资源,这些资源的分配与释放只能一次 一个。已知每一个进程最多需要两个该类资源,则该系统( )。[华中 科技大学考研真题]
A.有某进程可能永远得不到该类资源 B.必然死锁 C.进程请求该类资源立刻能得到 D.必然无死锁 【答案】D
【解析】3×(2-1)+1=4,所以不会发生死锁。
目 录
第一部分 名校考研真题 一、选择题 二、综合应用题
第二部分 课后习题 第1章 绪 论 第2章 线性表 第3章 栈和队列 第4章 串 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 查 找 第9章 内排序 第10章 外排序 第11章 数据结构和STL
第三部分 章节题库 第1章 绪 论 第2章 线性表 第3章 栈和队列 第4章 串 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 查 找 第9章 内排序 第10章 外排序 第11章 数据结构和STL(无)
A.时间片转移 B.静态优先及调度 C.非抢占式作业优先
D.抢占式短作业优先 【答案】A 【解析】时间片转移方法能在一个周期内使每个进程都得到一个时 间片的CPU使用时间,不会产生饥饿的现象,其余三个都会产生饥饿。
15 火车站的售票系统属于( )系统。[北京理工大学考研真题] A.单道批处理 B.多道批处理 C.分时 D.实时 【答案】D 【解析】实时操作系统(RTOS)是指当外界事件或数据产生时,能 够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之 内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源 完成实时任务,并控制所有实时任务协调一致运行的操作系统。火车站 售票系统是典型的实时系统。
A.是不可能出现的 B.是没法解决的 C.就是死锁 D.以上均不正确 【答案】D 【解析】首先,这种情况在多道程序系统中是可能出现的,甚至是 会经常出现的,A项不正确;同时,死锁是指多个进程因竞争资源而形 成的一种僵持局面,若无外力作用,这些进程都将永远不能再向前推 进,B项不正确;通常情况下,进程都在等待彼此已经占据的资源。本 题中的情况没有构成死锁,C项不正确。 22.下列措施中,能加快虚实地址转换的是1增大快表(TLB)2让 页表常驻内存3增大交换区( )。[2014年联考真题] A.仅1 B.仅2 C.仅1,2 D.仅2,3 【答案】C 【解析】加大快表能增加快表的命中率,即减少了访问内存的次 数;让页表常驻内存能够使cpu不用访问内存找页表,从也加快了虚实 地址转换。而增大交换区只是对内存的一种扩充作用,对虚实地址转换

李春葆《数据结构教程》(C++语言描述)课后习题(第5~8章)【圣才出品】

李春葆《数据结构教程》(C++语言描述)课后习题(第5~8章)【圣才出品】

三、算法设计题 (1)设定二维整数数组 B[0..m-1,0..n-1]的数据在行、列方向上都按从小到大的顺序 排序,且整型变量 x 中的数据在 B 中存在。试设计一个算法,找出一对满足 B[i,j]=x 的 i、 j 值,要求比较次数不超过 m+n。 答: void FindX(int &a,int x) {
(4)一个稀疏矩阵经过压缩后,和直接采用二维数组存储相比会失去______特性。 A.顺序存储 B.随机存取 C.输入/输出 D.以上都不对 【答案】B 【解析】稀疏矩阵可以采用三元组顺序表或是十字链表压缩存储,无论采取哪种方式, 均会使稀疏矩阵不再具有随机存取功能,答案为 B 项。
(5)当 m 行 n 列的稀疏矩阵采用十字链表表示时,其中单链表的个数为______。
(3)简述广义表、数组和线性表之间的异同。 答:一维数组可以看做是一个线性表,类似的也可以采用链式存储和顺序存储结构,但 是在计算机中直接将其视为连续的存储单元集合,二维数组同理可以视为每一个元素都是相 同类型的线性表的线性表,以此类推,任何多维数组都可以看做是线性表,其中每一个数据 元素也是一个线性表,所以说多维数组是线性表的推广。 广义表也是线性表的推广,其一般表示业余线性表相同,只不过其每一个元素既可以是 一个线性表,也可以是一个单个数据元素(原子),而线性表中的每一个元素只能是单个的 数据,这也就使得广义表一般只能用链式结构来表示,二线性表可以用顺序结构和链式结构 表示。
答:下三角矩阵的示意图如下图所示:
4 / 73
圣才电子书

十万种考研考证电子书、题库视频学习平台
a00 a10a11 a20a31a32 aij a 1 ij
在 A[i,j]之前共有 i 行,每行元素个数递增,同时此行有 j 个元素在其之前,因此其前

李春葆《数据结构教程》笔记和课后习题详解(线性表)【圣才出品】

李春葆《数据结构教程》笔记和课后习题详解(线性表)【圣才出品】
二、线性表的顺序存储结构 1.线性表的顺序存储结构—顺序表 (1)定义
2 / 69
圣才电子书 十万种考研考证电子书、题库视频学习平台

线性表的顺序存储结构是把线性表中的所有元素按照其逻辑顺序依次存储到从计算机 存储器中指定存储位置开始的一块连续的存储空间中。线性表的顺序存储结构称为顺序表。
圣才电子书 十万种考研考证电子书、题库视频学习平台

第 2 章 线性表
2.1 复习笔记 一、线性表 1.线性表的定义 线性表是具有相同特性的数据元素的一个有限序列。 2.线性表的特征 线性表的特征有: (1)所有数据元素的类型相同; (2)线性表是由有限个数据元素构成的; (3)线性表中的数据元素是与位置有关的,通常从 1 开始编号,每个数据元素有唯一 的序号,这一点表明线性表不同于集合; (4)线性表中的数据元素可以重复出现,而集合中的数据元素不会重复出现。 3.线性表的逻辑结构 (1)逻辑结构表示 线性表的逻辑结构一般表示为(a1,a2,…,ai,ai+1,…,an),用图形表示逻辑结构 如图 2-1 所示。
(2)实现 ①具体实现方法 采用 C++语言中的一维数组 data 来实现顺序表,并设定该数组的长度为常量 MaxSize, 图 2-2 所示为将长度为 n 的线性表存放在 data 数组中。
图 2-2 长度为 n 的线性表存放在顺序表中
②说明 数组的长度是指存放线性表的存储空间的长度,存储分配后这个量一般是不变的,而线 性表的长度是指线性表中的数据元素的个数,随着线性表的插入和删除操作而发生变化,但 在任何时刻都不能大于数组的长度 MaxSize。由于线性表的长度小于可以数组 data 的长度, 此时该数组中有一部分是空闲的,所以设计一个变量 length 表示顺序表的长度,即顺序表 data 数组中实际数据元素的个数。 线性表中的元素 a(i 1≤i≤n)的逻辑序号为 i,在对应顺序表中该元素的物理序号为 i-1。 算法形参中的序号 i 通常指逻辑序号。 (3)类模板的声明 ①具体声明方法 采用一个类模板 SqListClass<T>来定义顺序表,其中包含 data 和 length 等数据成员。 类模板 SqListCiass<T>的声明如下:

李春葆《数据结构教程》(C++语言描述)名校考研真题【圣才出品】

李春葆《数据结构教程》(C++语言描述)名校考研真题【圣才出品】

李春葆《数据结构教程》(C++语言描述)名校考研真题说明:我们从指定李春葆《数据结构教程》(C++语言描述)为考研参考书目的名校历年考研真题以及计算机联考真题中挑选具有代表性的考研真题,并对其进行了详细的解答。

通过这一部分的练习,可以帮助学员巩固基础知识、夯实专业基础,从而做到全方位备考。

一、选择题1.处理外部中断时,应该由操作系统保存的是()。

[2015年联考真题]A.程序计数器(PC)的内容B.通用寄存器的内容C.快表(TLB)的内容D.Cache中的内容【答案】B【解析】外部中断处理过程首先要保护现场,使得中断处理完后能够恢复程序的状态继续执行。

保护现场有两个含义:①由中断隐指令保存程序的断点(程序计数器);②由中断服务程序保存通用寄存器和状态寄存器的内容。

中断服务程序是操作系统的一部分。

2.按照计算机系统层次结构的一般原则,从用户的角度将依次(1,2,3)看到()。

[浙江大学考研真题]A.1C语言编译程序,2用C语言写的某单位的认识管理程序,3操作系统B.1用C语言写的某单位的认识管理程序语言,2编译程序,3操作系统C.1操作系统,2用C语言写的某单位的认识管理程序语言,3编译程序D.1用C语言写的某单位的认识管理程序语言,2操作系统,3编译程序【答案】B【解析】计算机系统的组成如下图所示:其中,C语言写的某单位的认识管理程序语言属于应用程序,编译程序属于语言处理程序。

3.假定下列指令已装入指令寄存器。

则执行时不可能导致CPU从用户态变为内核态(系统态)的是()。

[2015年联考真题]A.DIV R0,R1;(R0)/(R1)→R0B.INT n;产生软中断C.NOT R0;寄存器R0的内容取非D.MOV R0,addr;把地址处的内存数据放入寄存器R0中【答案】C【解析】A项,除法操作出现除数为零的情况时,会产生内中断,CPU切换为内核态进行中断处理;B项,直接产生中断,会切换到内核态;D项,addr出现非法地址,会出现中断,进而切换到内核态。

李春葆《数据结构教程》(第4版)笔记和课后习题详解(文 件)【圣才出品】

李春葆《数据结构教程》(第4版)笔记和课后习题详解(文 件)【圣才出品】

第12章文件12.1 复习笔记一、文件的基本概念1.文件概述(1)定义文件是性质相同的记录的集合。

(2)按关键字划分①单关键字文件若文件中的记录只有一个惟一标识记录的主关键字,则称之为单关键字文件;②多关键字文件若文件中的记录除了含有一个主关键字外,还含有若干个次关键字,则称之为多关键字文件。

(3)按是否定长划分①定长文件若文件中各记录含有的信息长度相同,则称这类记录为定长记录,由这种定长记录组成的文件称作定长文件;②不定长文件若文件中各记录含有的信息长度不等,则称作不定长文件。

2.文件的逻辑结构及操作(1)文件的逻辑结构文件中各记录之间存在着逻辑关系,当一个文件的各个记录按照某种次序排列起来时,各记录之间就自然地形成了一种线性关系。

在这种次序下,文件中每个记录最多只有一个直接后继记录和一个直接前驱记录,而文件的第一个记录只有直接后继没有直接前驱,文件的最后一个记录只有直接前驱而没有直接后继。

此时,文件可看成是一种线性结构。

(2)文件操作①检索文件检索就是在文件中查找满足给定条件的记录,它既可以按记录的逻辑号(即记录存入文件时的顺序编号)查找,也可以按关键字查找。

②维护文件维护主要是指对文件进行记录的插入、删除及修改等更新操作。

此外,为提高文件的效率,还要进行再组织操作、文件被破坏后的恢复操作以及文件中数据的安全保护等。

3.文件的存储结构(1)概念文件的存储结构是指文件在外存上的组织方式。

采用不同的组织方式就得到不同的存储结构。

(2)基本的组织方式①顺序组织;②索引组织;③哈希组织;④链组织。

文件组织的各种方式往往是这四种基本方式的结合。

二、顺序文件1.定义顺序文件是指按记录进入文件的先后顺序存放、其逻辑顺序跟物理顺序一致的文件。

若顺序文件中的记录按其主关键字有序,则称此顺序文件为顺序有序文件;否则称为顺序无序文件。

2.优点顺序文件的主要优点是连续存取的速度较快,即若文件中第i个记录刚被存取过,而下一个要存取的是第i+1个记录,则这种存取将会很快完成。

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(绪论)

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(绪论)

第1章绪论一、单项选择题(1)计算机所处理的数据一般具备某种内在联系,这是指______。

A.数据和数据之间存在某种关系B.元素和元素之间存在某种关系C.元素内部具有某种结构D.数据项和数据项之间存在某种关系【答案】B【解析】数据是计算机操作对象的总称,数据元素是计算机处理数据的基本单位,因此数据之间的内在联系指的应该是数据元素和数据元素之间的关系。

(2)在数据结构中,与所使用计算机无关的是数据的______结构。

A.逻辑B.存储C.逻辑和存储D.物理【答案】A【解析】数据的逻辑结构是从逻辑关系上描述数据的,它与数据的存储无关,是独立于计算机的。

而数据的存储结构是指数据元素及其关系在计算机存储器中的存储方式,也称为数据的物理结构,与计算机有关。

(3)数据结构在计算机中的表示称为数据的______。

A.存储结构B.抽象数据类型C.顺序结构D.逻辑结构【答案】A【解析】数据的存储结构是逻辑结构用计算机语言的实现或在计算机中的表示。

(4)在计算机中存储数据时,通常不仅要存储各数据元素的值,还要存储______。

A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法【答案】C【解析】存储实现的基本目标是建立数据的机内表示,其包括两个部分,即数据元素的存储和数据元素之间关系的存储。

(5)在计算机的存储器中表示数据时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称为______。

A.逻辑结构B.顺序存储结构C.链式存储结构D.以上都正确【答案】B【解析】顺序存储结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。

所以答案B项正确;逻辑结构是独立于计算机的与存储结构相平行的概念,并不是存储结构的一种,A项错误;中链式存储结构不要求逻辑上相邻的结点在物理位置上也相邻,结点同的逻辑关系用附加的指针域来表示,C项错误。

李春葆《数据结构教程》(第4版)笔记和课后习题详解(图)【圣才出品】

李春葆《数据结构教程》(第4版)笔记和课后习题详解(图)【圣才出品】

第8章图8.1 复习笔记一、图的基本概念1.图的定义图都是由顶点和边构成的。

采用形式化的定义,图G由两个集合V和E组成,记为G =(V,E),其中V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。

抽象数据类型图的定义如下:2.图的基本术语(1)端点和邻接点在一个无向图中,若存在一条边(i,j),则称顶点i和顶点j为该边的两个端点,并称它们互为邻接点,即顶点i是顶点j的一个邻接点,顶点j也是顶点i的一个邻接点。

(2)顶点的度、入度和出度①度在无向图中,某顶点所具有的边的数目称为该顶点的度。

②入度在有向图中,顶点i的度又分为入度和出度,以顶点i为终点的入边的数目,称为该顶点的入度。

③出度以顶点i为起点的出边的数目,称为该顶点的出度。

一个顶点的入度与出度的和为该顶点的度。

(3)完全图若无向图中每两个顶点之间都存在一条边,或有向图中每两个顶点之间都存在着方向相反的两条边,则称此图为完全图。

(4)稠密图和稀疏图①稠密图当一个图接近完全图时,称为稠密图。

②稀疏图当一个图含有较少的边数(即当e<<n(n-1))时,则称为稀疏图。

(5)子图设有两个图G=(V,E)和G′=(V′,E′),若V′是V的子集,即V′≤V,且E′是E的子集,即E′≤E,则称G′是G的子图。

(6)路径和路径长度①路径在一个图G=(V,E)中,从顶点i到顶点j的一条路径是一个顶点序列(i,i1,i2,…,i m),若此图G是无向图,则边(i,i1),(i1,i2),…,(i m-1,i m),(i m,j)属于E(G);若此图是有向图,N<i,i1>,<i1,i2>,…,<i m-1,i m>,<i m,j>属于E(G)。

②路径长度路径长度是指一条路径上经过的边的数目。

(7)回路或环若一条路径上的开始点与结束点为同一个顶点,则称此路径为回路或环。

李春葆编著数据结构(C语言篇)习题与解析(修订版)

李春葆编著数据结构(C语言篇)习题与解析(修订版)

一、绪论选择题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的存储结构。

A.随机存取B.顺序存取C.索引存取D.散列存取5.算法分析的目的是1,算法分析的两个主要方面是2。

1 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.正确性和简单性C.可读性和文档性D.数据复杂性和程序复杂性6.计算机算法指的是1,它必须具备输入、输出和2等5个特性。

1 A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法2 A.可执行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种说法。

A.正确B.不正确8线性表若采用链式存储结构时,要求内存中可用存储单元的地址。

A.必须连续的B.部分地址必须连续的C.一定是不续的D连续不连续都可以9.以下的叙述中,正确的是。

A.线性表的存储结构优于链式存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出10.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。

A.正确B.不正确填空题1.数据逻辑结构包括三种类型、和,树形结构和图形结构合称为。

(NEW)李春葆《数据结构教程》(C++语言描述)配套题库【名校考研真题+课后习题+章节题库+模拟试题】

(NEW)李春葆《数据结构教程》(C++语言描述)配套题库【名校考研真题+课后习题+章节题库+模拟试题】
A.DIV R0,R1;(R0)/(R1)→R0 B.INT n;产生软中断 C.NOT R0;寄存器R0的内容取非 D.MOV R0,addr;把地址处的内存数据放入寄存器R0中 【答案】C 【解析】A项,除法操作出现除数为零的情况时,会产生内中断, CPU切换为内核态进行中断处理;B项,直接产生中断,会切换到内核 态;D项,addr出现非法地址,会出现中断,进而切换到内核态。
D.1用C语言写的某单位的认识管理程序语言,2操作系统,3编译
程序 【答案】B 【解析】计算机系统的组成如下图所示:
其中,C语言写的某单位的认识管理程序语言属于应用程序,编译 程序属于语言处理程序。
3 假定下列指令已装入指令寄存器。则执行时不可能导致CPU从 用户态变为内核态(系统态)的是( )。[2015年联考真题]
5 下列说法中( )不是创建进程必须的。[上海交通大学考研真 题]
A.建立一个进程的进程表项 B.为进程分配内存 C.为进程分配CPU D.将进程表项放入就绪队列 【答案】C 【解析】进程刚被创建后,实际上是处于就绪状态的,所以不许为 进程分配CPU。
6 若系统S1采用死锁避免方法,S2采用死锁检测方法,下列叙述 中正确的是( )。[2015年联考真题]
4 下列选项中会导致进程从执行态变为就绪态的事件是( )。 [2015年联考真题]
A.执行P(wait)操作 B.申请内存失败 C.启动I/0设备 D.被高优先级进程抢占 【答案】D 【解析】D项,被高优先级进程抢占,进程会由执行态变为就绪 态。ABC三项,程序由于缺少资源而由执行态转为阻塞态。
目录
第一部分 名校考研真题 一、选择题 二、综合应用题
第二部分 课后习题 第1章 绪 论 第2章 线性表 第3章 栈和队列 第4章 串 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 查 找 第9章 内排序 第10章 外排序 第11章 数据结构和STL
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

李春葆《数据结构教程》(C++语言描述)模拟试题及详解(一)
一、单项选择题(每小题2分,共20分)
1.队列的特点是()。

A.先进后出
B.先进先出
C.任意位置进出
D.前面都不正确
【答案】B
2.有n个记录的文件,如关键字位数为d,基数为r,则基数排序共要进行()遍分配与收集。

A.n
B.d
C.r
D.n-d
【答案】B
【解析】基数排序是按组成关键字的各位值进行分配收集而完成的。

3.在二叉树节点的先序序列、中序序列和后序序列中,所有叶子节点的先后顺序()。

A.都不相同
B.完全相同
C.先序和中序相同,而与后序不同
D.中序和后序相同,而与先序不同
【答案】B
【解析】无论是哪种遍历方式,遍历叶子节点时,都是先访问左子树,后访问右子树。

4.限定在一端加入和删除元素的线性表称为()。

A.双向链表
B.单向链表
C.栈
D.队列
【答案】C
【解析】根据栈后进先出的特性,可见栈都在一端对元素进行操作。

5.设内存工作区可容纳8个记录,初始文件共有64个关键字不同的记录,且已按关键字递减排列,如用置换.选择排序产生初始归并段,最长初始归并段所含记录数是()。

A.6
B.7
C.8
D.9
【答案】C
【解析】对于置换选择排序,输入的文件是以关键字降序排列时,所得的初始归并段的最大长度为工作区的大小。

当输入的文件以关键字的升序排序时,只能得到一个长度为文件长度的初始归并段。

6.设森林F对应的二叉树为B,它有m个节点,B的根为p,p的右子树上的节点个数为n,森林F中第一棵树的节点个数是()。

A.m-n-1
B.n+l
C.m-n+1
D.m-n
【答案】D
7.设有198个初始归并段,如采用K-路平衡归并三遍完成排序,则K值最大为()。

A.12
B.13
C.14
D.15
【答案】C
【解析】k一路平衡归并,归并趟数公式s=[1og k m],m指归并段数,s指趟数。

要三遍完成遍历,那就看两遍完成排序的需遍历的最小数。

把s=2和m=198带入公式,可知两遍完成排序时k最小为15,所以k<15。

8.下面关于广义表的叙述中,不正确的是()。

A.广义表可以是一个多层次的结构
B.广义表至少有一个元素
C.广义表可以被其他广义表所共享
D.广义表可以是一个递归表
【答案】B
【解析】B项错误,广义表可以不包含任何元素。

9.如以顺序表示存储二叉树,每个节点占用一个存储单元,则深度为K的单左枝二叉树共浪费()个存储单元。

A.2K-1-K
B.2K-1-K-1
C.2K-K-1
D.2K-K+1
【答案】A
【解析】要用顺序表示存储二叉树,应补充虚拟节点构成一个完全二叉树,本题中完全二叉树的前K-1导为一个满二叉树,节点数为2K-1-1,第K层的节点数为1,可知节点总数为2K-1,可知要浪费2K-1-K,进而可知浪费2K-1-K个存储单元。

10.从L=((apple,pear),(orange,banana))中,取出banana元素的表达式为()
A.
B.
C.
D.
【答案】D
【解析】tail(L)获得除首元素外所有的元素组成的表。

Head(L)获得表中第一个元素。

二、(共10分)
试对如图5-1中的二叉树画出其:
(1)顺序存储表示;
(2)二叉链表存储表示的示意图。

图5-1二叉树示意图
答:(1)用一组连续的存储单元来存储二叉树的数据元素,对完全二叉树,只要按点编号i存储到相应位置即可;对于一般二叉树,需按完全二叉树的形式来存储,必须处理不存在的节点。

二叉树的顺序存储表示如表5-1所示。

表5-1二叉树的顺序存储表
(2)链式存储结构二叉树一般都使用二叉链表作为存储结构,每个节点包含三个域,数据域及左右指针域,分别指向左右孩子。

二叉树的二叉链表存储表示的示意图如图5-2所示:
图5-2二叉树的二义链表存储表示示意图
三、(共10分)
判断以下序列是否是小根堆?如果不是,将它调整为小根堆。

(1){12,70,33,65,24,56,48,92,86,33}
(2){05,23,20,28,40,38,29,61,35,76,47,100)
答:做法就是把序列写成完全二叉树,看父节点都是否比孩子结点小,如果是那就是最小根堆。

(1)不是小根堆。

调整为:{12,24,33,65,33,56,48,92,86,70}
(2)是小根堆。

四、(本题10分)
已知一个图的顶点集V和边集E分别为:。

相关文档
最新文档