1、电大数据结构本期末复习材料资料仅供参考中央电大开放本科计算机科学与技术数据结构(本)期末综合练习一、单项选择题1数据元素是数据的基本单位,它( C )。A只能有一个数据项组成 B至少有二个数据项组成C能够是一个数据项也能够由若干个数据项组成 D至少有一个数据项为指针类型2 一种逻辑结构( A )存储结构。 A能够有不同的 B只能有唯一的C的数据元素在计算机中的表示称为 D的数据元素之间的关系称为3线性表的顺序结构中,( C )。A逻辑上相邻的元素在物理位置上不一定相邻 B数据元素是不能随机访问的C逻辑上相邻的元素在物理位置上也相邻 D进行数据元素的插入、删除效率较高4以下说法中不正确的是( B
2、 )。A双向循环链表中每个结点需要包含两个指针域B已知单向链表中任一结点的指针就能访问到链表中每个结点C顺序存储的线性链表是能够随机访问的 D单向循环链表中尾结点的指针域中存放的是头指针5以下表中能够随机访问的是( D )。 A单向链表 B双向链表 C单向循环链表 D顺序表6双向循环链表结点的数据类型为: struct node int data; struct node *next; /*指向直接后继*/ struct node *prior;;设p指向表中某一结点,要显示p所指结点的直接前驱结点的数据元素,可用操作( B )。Aprintf(“%d”,p-next-data); Bprin
3、tf(“%d”,p-prior-data);Cprintf(“%d”,p-prior-next); Dprintf(“%d”,p-data);7 .设顺序存储的线性表长度为n,对于删除操作,设删除位置是等概率的,则删除一个元素平均移动元素的次数为( A )。A(n+1)/2 Bn C2n Dn-i8一个栈的进栈序列是efgh,则栈的不可能的出栈序列是( D )(进出栈操作能够交替进行)。Ahgfe Bgfeh Cfgeh Dehfg9设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则出栈操作为( A )。Ax=top-data;top=t
4、op-next; Btop=top-next;x=top-data; Cx=top- next;top=top- data; Dtop-next =top; x=top-data; 10设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为( C )。Atop-data= x; Btop=top-next; Cx=top-data; Dx=top-data; top= top-next;11以下说法正确的是( C )。A队列是后进先出 B栈的特点是后进后出C栈的删除和插入操作都只能在栈顶进行 D队列的删除和插入操作都只能在队
5、头进行13串函数StrCmp(“abA”,”aba”)的值为( D )。A1 B0 C“abAaba” D-114char *p; p=StrCat(“ABD”,”ABC”); Printf(“%s”,p); 的显示结果为( B )。A-1 BABDABC CAB D115设有一个12阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中(矩阵A的第一个元素为a1,1,数组b的下标从1开始),则矩阵A中第4行的元素在数组b中的下标i一定有( A )。A、7i10 B、11i15 C、9i14 D、6i916深度为5的满二叉树至多有( B )个结点(根结点为第一层)A40
6、B31 C34 D3517已知一个图的边数为m,则该图的所有顶点的度数之和为( A )。A2m Bm C2m+1 Dm/218已知一个图的所有顶点的度数之和为m,则该图的边数为( D )。A2m Bm C2m+1 Dm/219以下说法不正确的是( D )。 A连通图G一定存在生成树 B连通图G的生成树中一定包含G的所有顶点C连通图G的生成树中不一定包含G的所有边 D连通图G的生成树能够是不连通的20以下说法不正确的是( A )。 A连通图G的生成树一定是唯一的 B连通图G一定存在生成树C连通图G的生成树中一定要包含G的所有顶点D连通图G的生成树一定是连通而且不包含回路21散列查找的原理是( A
7、 )。A在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B按待查记录的关键字有序的顺序方式存储C按关键字值的比较进行查找 D基于二分查找的方法22有序表为1,2,4,6,10,18,20,32,用课本中折半查找算法查找值18,经( B )次比较后成功查到。 A3 B2 C4 D523排序过程中,每一趟从无序子表中将一个待排序的记录按其关键字的大小放置到已经排好序的子序列的适当位置,直到全部排好序为止,该排序算法是( A )。 A直接插入排序 B快速排序 C冒泡排序 D选择排序 24在排序过程中,能够经过某一趟排序的相关操作所提供的信息,判断序列是否已经排好序,从而能够提前结束排序过
8、程的排序算法是( A )。 A冒泡 B选择 C直接插入 D折半插入 25采用顺序查找法对长度为n的线性表进行查找(不采用表尾设监视哨的方法),最坏的情况下要进行( B )次元素间的比较。 An+2 Bn Cn-1 Dn/226用折半查找法,对长度为12的有序的线性表进行查找,最坏情况下要进行( A )次元素间的比较 A4 B3 C5 D627如图若从顶点a出发按广度优先搜索法进行遍历,则可能得到的顶点序列为( D )。abecdhgf AacebdfghBaebcghdfCaedfbcghDabecdfgh 图1 28如图若从顶点a出发按深度优先搜索法进行遍历,则可能得到的顶点序列为( B )
9、。bcgdafe AacfgedbBaedbgfcCacfebdgDaecbdgf29一棵哈夫曼树总共有23个结点,该树共有( D )个叶结点(终端结点)A10 B13 C11 D1230一棵哈夫曼树总共有25个结点,该树共有( A )个非叶结点(非终端结点)。A12 B13 C14 D1531针对线性表,在存储后如果最常见的操作是取第i个结点及其前驱,则采用( D )存储方式最节省时间。A单链表 B双链表 C单循环链表 D顺序表32线性表采用链式存储时,其地址( C )。A一定是不连续的 B必须是连续的C能够连续也能够不连续 D部分地址必须是连续的33数据结构中,与所使用的计算机无关的是数据
10、的( D )结构。 A物理 B存储 C逻辑与物理 D逻辑34带头结点的单向链表的头指针为head,该链表为空的判定条件是( C )的值为真。Ahead = = NULL Bhead-next= =head Chead-next= = NULL Dhead = =head-next35以下特征中,( D )不是算法的特性。 A有穷性 B确定性 C可行性 D有0个或多个输出 36设顺序存储的线性表长度为n,对于插入操作,设插入位置是等概率的,则插入一个元素平均移动元素的次数为( A )。An/2 Bn Cn-1 Dn-i+137设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的
11、第i个元素),则移动元素个数为( A )。 An-i+1 Bn-i Cn-i-1 Di38一个栈的进栈序列是5,6,7,8,则栈的不可能的出栈序列是(A )(进出栈操作能够交替进行)A5,8,6,7 B7,6,8,5 C7,6,5,8 D8,7,6,539栈的插入删除操作在( D )进行。 A栈底 B任意位置 C指定位置 D栈顶40栈和队列的相同点是( D )。A都是后进先出 B都是后进后出C逻辑结构与线性表不同 D逻辑结构与线性表相同,都是操作规则受到限制的线性表41以下说法正确的是( C )。 A栈的特点是先进先出,队列的特点是先进后出 B栈和队列的特点都是先进后出C栈的特点是先进后出,队
12、列的特点是先进先出 D栈和队列的特点都是先进先出42在C语言中,利用数组a存放字符串“Hello”,以下语句中正确的是( A )。Achar a10= “Hello”; Bchar a10; a=“Hello”;Cchar a10= Hello; Dchar a10=H,e,l,l,o;43元素2,4,6,8按顺序依次进栈,则该栈的不可能输出序列是( D )(进栈出栈能够交替进行)。 A8,6,4,2 B2,4,6,8 C4,2,8,6 D8,6,2,444设有一个15阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中。(矩阵A的第一个元素为a1,1,数组b的下标从1
13、开始),则数组元素b13对应A的矩阵元素是( A )。Aa5,3 Ba6,4 Ca7,2 Da6,845设有一个15阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a7,6在一维数组B中的下标是( C )。A42 B13 C27 D3246一棵完全二叉树共有30个结点,则该树一共有( D )层(根结点所在层为第一层)。A6 B4 C3 D547串函数StrCmp(“d”,“D”)的值为( B )。 A0 B1 C-1 D348以下说法正确的是( D )。 A连通图G的生成树中不一定包含G的所有顶点 B连通图G的生成树中一定要包含
14、G的所有边C连通图G的生成树一定是唯一的 D连通图G一定存在生成树49在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为( D )。 A2i B2i-1 C2i+2 D2i+150对二叉排序树进行( C )遍历,遍历所得到的序列是有序序列。 A按层次 B前序 C中序 D后序51设一棵有n个结点采用链式存储的二叉树,则该树共有( D )个指针域为空。 A2n B2n+1 C2n+2 Dn+152以下排序算法中,在一趟排序过程中,除了其它相关操作外,只进行一次元素间的交换的算法是( A )。 A直接选择 B冒泡 C直接插入 D折半插入bdfeca53已知如图1所示的一个图,若从顶点a
15、出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( B )。 Aabcedf Babcefd Caebcfd Dacfdeb 图154对长度为n的线性表进行顺序查找,在等概率情况下,平均查找长度为( B )。 An B(n+1)/2 C2n Dn-1 55在有序表1,3,8,13,33,42,46,63,76,78,86,97,100中,用折半查找值86时,经( D )次比较后查找成功。A6 B3 C8 D456如图若从顶点a出发按深度优先搜索法进行遍历,则可能得到的顶点序列为( A )。abecdfg AacfgedbBaedcbgfCacfebdgDaecbdgf57有一个长度为
16、10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( A )。A29/10 B31/10 C26/10 D29/958一棵哈夫曼树有12个叶子结点(终端结点),该树总共有( C )个结点。A22 B21 C23 D2459一组记录的关键字序列为(37,70,47,29,31,85),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( A )。 A31,29,37,47,70,85 B29,31,37,47,70,85C31,29,37,70,47,85 D31,29,37,85,47,7060队列的删除操作在( A )进行。 A队头 B队尾 C队头或队尾
17、 D在任意指定位置61( A )是性质相同的数据元素的集合,是数据的子集。A数据对象 B数据元素 C数据结构 D数据项62设链表中的结点是NODE类型的结构体变量,且有NODE *p;为了申请一个新结点,并由p指向该结点,可用以下语句( D )。Ap=(NODE *)malloc(sizeof(p); Bp=(*NODE)malloc(sizeof(NODE);Cp=(NODE )malloc(sizeof(p); Dp=(NODE *)malloc(sizeof(NODE);63设顺序存储的线性长度为n,要在第i个元素之前插入一个新元素,按课本的算法当i=( C )时,移动元素次数为2An/
18、2 Bn Cn-1 C164一个栈的进栈序列是1,2,3,4,则栈的不可能的出栈序列是(D)(进出栈操作能够交替进行)A3,2,4,1 B3,2,1,4 C4,3,2,1 D1,4,2,3 65设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针。设p指向要入队的新结点(该结点已被赋值),则入队操作为( A )。Arear-next=p;rear=p; Brear-next=p; p = rear; Cp = rear-next;rear=p; Drear=p;rear-next=p;66以下说法不正确的是( D )
19、。 A顺序栈中,栈满时再进行进栈操作称为“上溢”B顺序栈中,栈空时再作出栈栈操作称为“下溢”C顺序队列中,队列的头指针和尾指针均超越队列存储空间的上界,则队列已空D顺序队列中,当尾指针已经超越队列存储空间的上界,则一定是队列已满67设有一个20阶的对称矩阵A,采用压缩存储方式,将其下三角部分以行序为主序存储到一维数组中(矩阵A的第一个元素为a11,数组b的下标从1开始),则矩阵元素a8,5在一维数组b中的下标是( D )。A30 B28 C40 D33 68已知一个图的所有顶点的度数之和为m,则m一定不可能是( D )。A4 B8 C12 D969以下说法正确的是( C )。 A连通图G的生成
20、树中能够包含回路 B连通图G的生成树能够是不连通的C连通图G的生成树一定是连通而不包含回路的 D连通图G的生成树一定是唯一的70对n个元素进行冒泡排序,一般要进行n-1趟冒泡,在第j趟冒泡中共要进行( C )次元素间的比较。 Aj Bj-1 Cn-j Dn-j-1 71在排序过程中,能够有效地减少一趟排序过程中元素间的比较次数的算法是(C )。 A冒泡 B选择 C折半插入 D直接插入 72一棵哈夫曼树有n个叶子结点(终端结点),该树总共有( B )个结点。A2n-2 B2n-1 C2n D2n+273数据的( A )结构与所使用的计算机无关。 A逻辑 B物理 C存储 D逻辑与存储74从n个数中
21、选取最大元素( B )。 A基本操作是数据元素间的交换 B算法的时间复杂度是O(n) C算法的时间复杂度是O(n2) D需要进行(n+1)次数据元素间的比较75设head为非空的单向循环链表头指针,p指向链表的尾结点,则满足逻辑表示式( B )的值为真。Ap-next=NULL Bp-next= =head Cp-next=head Dp= =NULL76设顺序存储的线性表长度为n,要删除第i个元素,按课本的算法,当i=( C )时,移动元素的次数为3。A3 Bn/2 Cn-3 D377一个栈的进栈序列是a,b,c,d,则栈的不可能的出栈序列是( D )。Adcba Bbcad Ccbad D
22、adbc 78设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针,要执行出队操作,用x保存出队元素的值,p为指向结点类型的指针,可执行如下操作:p=front-next;x=p-data; 然后指行( D )。Afront=p-next; Bfront-next =p; Cfront=p; Dfront-next=p-next;79在C语言中,存储字符串“ABCD”需要占用( C )字节。A4 B2 C5 D380设有一个10阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中。(矩阵A的第
23、一个元素为a1,1,数组b的下标从1开始),则矩阵元素a5,3对应一维数组b的数组元素是( C )。Ab18 Bb8 Cb13 Db1081设有一个15阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中。(矩阵A的第一个元素为a1,1,数组b的下标从1开始),则数组元素b13对应A的矩阵元素是( A )。Aa5,3 Ba6,4 Ca7,2 Da6,882深度为5的完全二叉树共有20个结点,则第5层上有( C )个结点(根所在结点为第一层)。A3 B8 C5 D683已知一个图的所有顶点的度数之和为m,且m是以下4中情况之一,则m只可能是( D )。A9 B7 C15
24、D884以下说法正确的是( C )。 A连通图G的生成树中不一定包含G的所有顶点 B连通图G的生成树中一定要包含G的所有边C连通图G一定存在生成树 D连通图G的生成树一定是唯一的85线性表只要以( C )方式存储就能进行折半查找。A链接 B顺序 C关键字有序的顺序 D二叉树86对二叉排序树进行( C )遍历,遍历所得到的序列是有序序列。 A按层次 B前序 C中序 D后序87对n个元素进行冒泡排序若某趟冒泡中只进行了(C )次元素间的交换,则表明序列已经排好序。 A1 B2 C0 Dn-188在对一组元素(64,48,106,33,25,82,70,55,93)进行直接插入排序时,当进行到要把第
25、7个元素70插入到已经排好序的子表时,为找到插入位置,需进行( C )次元素间的比较(指由小到大排序)。A6 B2 C3 D4abecdfg89如图,若从顶点a出发按广度优先搜索法进行遍历,则可能得到的顶点序列为( C )。 Aacebdgf Bacfedgb CabecdgfDabecfdg 90一棵哈夫曼树有10个非叶子结点(非终端结点),该树总共有( A )个结点。A21 B20 C22 D1991一棵哈夫曼树有12个叶子结点(终端结点),该树总共有( C )个结点。A21 B22 C23 D2492队列的插入操作在( B )进行。 A队头 B队尾 C队头或队尾 D在任意指定位置93队列
26、的删除操作在( B )进行。 A队尾 B队头 C队头或队尾 D在任意指定位置94链表所具备的特点是( C )。A.能够随机访问任一结点 B.占用连续的存储空间C.插人删除元素的操作不需要移动元素结点 D.能够经过下标对链表进行直接访问95线性结构中数据元素的位置之间存在( C )的关系。A. 一对一 B. 一对多C. 多对多 D. 每一个元素都有一个直接前驱和一个直接后继96算法的时间复杂度与( C )有关。A. 所使用的计算机 B.与计算机的操作系统C. 与算法本身 D.与数据结构974.在一个单链表中,p,q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点
27、,可用的语句是( )。A. p =q- riext B. p-next=qC. p-next=q-next D. q-next=NULL98在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( C )A. r=f-next; B. r=r-next; C. f=f-next; D. f=r-next;99.元素3,6,9按顺序依次进栈,则该栈的不可能输出序列是( B )(进栈出栈能够交替进行)A. 9,6,3 B. 9,3,6 C. 6,3,9 D. 3,9,6100设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主存储到一维数组B中(数组下标从1开始)
28、,则矩阵中元素戊.s在一维数组B中的下标是()A.33 B.32 C. 85 D. 41101排序方法中,从尚未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为( D )排序。A. 归并 B.插人 C. 快速 D.选择102排序算法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法是( C )。A. 冒泡 B. 直接插入 C. 折半插入 D. 选择排序二、填空题1一般数据的逻辑结构包括 集合 、_线性_、_ 树形_、 图状_四种类型。2一般能够把一本含有不同章节的书的目录结构抽象成_树形
29、_结构。3设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句_ p-next=head;_ _。4要在一个单向链表中p所指向的结点之后插入一个s所指向的新结点,若链表中结点的指针域为next,可执行_ s-next= p-next;_和p-next=s;的操作。5设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作_ p-next=head; 。 6设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈结点的指
30、针域为next,则可执行x=hs-data; _ hs=hs-next; _。7在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,则插入一个s所指结点的操作为_ r-next=s _;r=s;8在一个不带头结点的非空链队中,f和r分别为队头和队尾指针,队结点的数据域为data,指针域为next,若要进行出队操作,并用变量x存放出队元素的数据值,则相关操作为x=f-data; f=f-next; 。9循环队列的队头指针为f,队尾指针为r,当_ r= =f _时表明队列为空。 10循环队列的最大存储空间为MaxSize=8,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针f
31、ront=4,则当队尾指针rear= _4 _时,队列为空,当rear= _2 _时,队列有6个元素。11稀疏矩阵存储时,采用一个由_行号_ 、_列号 _ 、_非零元 _3部分信息组成的三元组唯一确定矩阵中的一个非零元素。12一棵二叉树没有单分支结点,有6个叶结点,则该树总共有_11_个结点。13一棵二叉树顺序编号为6的结点(树中各结点的编号与等深度的完全二叉树中对应位置上结点的编号相同),若它存在右孩子,则右孩子的编号为_13_。14按照二叉树的递归定义,对二叉树遍历的常见算法有_先序 _ 、_中序 _、 _后序_三种。15结构中的数据元素存在多对多的关系称为_图状_结构。16把数据存储到计
32、算机中,并具体体现数据之间的逻辑结构称为_物理(存储)_结构。17结构中的数据元素存在一对多的关系称为_树形_结构。18如图3所示的二叉树,其后序遍历序列为 gdbeihfca 。efgibachd 图3gfabdec19如图4所示的二叉树,其前序遍历序列为_ abdefcg _。 图420二叉树为二叉排序的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法是_错误_的。(回答正确或不正确) 21在队列的顺序存储结构中,当插入一个新的队列元素时, 尾 指针的值增1,当删除一个元素队列时, 头 指针的值增1。22根据搜索方法的不同,图的遍历有_深度优先 、 _ 广度优先
33、_ 两种方法。23循环队列的引入,目的是为了克服 假上溢 。24一般能够把某城市中各公交站点间的线路图抽象成_图状_ _结构。25结构中的元素之间存在多对多的关系称为_图状_ _结构。26要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行_ q-next= p-next; _。27设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表示式_ p-next= =head;_的结果为真,则p所指结点为尾结点。28设有一个链栈,栈顶指针为hs,现有一个s所指向的结点要入栈,则可执行操作_ s-ne
34、xt=hs; 和hs=s;29顺序存储字符串“ABCD”需要占用_5_个字节。30循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效地判断栈空或栈满,若队头指针front=4,当队尾指针rear= _3_ _时队满,队列中共有_5_个元素。31一棵二叉树叶结点(终端结点)数为5,单分支结点数为2,该树共有_11_个结点32设一棵完全二叉树,其最高层上最右边的叶结点的编号为奇数,该叶节点的双亲结点的编号为10,该完全二叉树一共有_21_个结点。33一棵二叉树中顺序编号为5的结点(树中各结点的编号与等深度的完全二叉中对应位置上结点的编号相同),若它存在左孩子,则左孩子的编号为_
35、10 _。34结构中的数据元素存在一对一的关系称为_线性_结构。35一棵有n个叶结点的二叉树,其每一个非叶结点的度数都为2,则该树共有_2n-1_个结点。36图的深度优先搜索和广度优先搜索序列不一定是唯一的。此断言是_正确_的。(回答正确或不正确) 37串的两种最基本的存储方式分别是_ 顺序存储_和 _链式存储_ _。38按某关键字对记录序列排序,若关键字 关键字相等的记录 的记录在排序前和排序后仍保持它们的前后关系,则排序算法是稳定的,否则是不稳定的。39设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句_ p=p-next; _。40要在一个带头结点的单向循环链表中删除头结点,得到一个新的不