1、李春葆数据结构习题与解析一、绪论选择题1.数据结构是一门研究非数值计算的程序设计问题 计算机的以及它们之间的和运算等的学科。1A.数据元素 B.计算方法C.逻辑存储D.数据映像2A.结构 B.关系C.运算D.算法2.数据结构被形式地定义为 (K, R),其中K是的有限集,R是K上的有限集。1A.算法 B.数据元素C.数据操作D.逻辑结构2A.操作 B.映像C.存储D.关系3.在数据结构中,从逻辑上可以把数据结构分成。A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4.线性结构的顺序存储结构是一种的存储结构,线性表的链式存储结构是一种的存储结构。A
2、.随机存取 B.顺序存取C.索引存取D.散列存取5.算法分析的目的是,算法分析的两个主要方面是。1 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.正确性和简单性C.可读性和文档性 D.数据复杂性和程序复杂性6.计算机算法指的是,它必须具备输入、输出和等5个特性。1 A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法2 A.可执行性、可移植性和可扩充性 B.可行性、确定性和有穷性 C.确定性、有穷性和稳定性 D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种
3、说法。 A.正确 B.不正确8线性表若采用链式存储结构时,要求内存中可用存储单元的地址。A.必须连续的 B.部分地址必须连续的C.一定是不续的D连续不连续都可以9.以下的叙述中,正确的是。A.线性表的存储结构优于链式存储结构 B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出 D.队列的操作方式是先进后出10.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。 A.正确 B.不正确填空题1.数据逻辑结构包括三种类型 、 和,树形结构和图形结构合称为。2.在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结
4、点。3.在树形结构中,树根结点没有结点,其余每个结点有且只有个前驱结点;叶子结点没有结点,其余每个结点的后续可以。4.在图形结构中,每个结点的前驱结点数和后续结点数可以。5.线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。6.算法的五个重要特性是、。7.下面程序段的时间复杂度是。for( i = 0; i n; i+) for( j = 0; j m; j+) Aij = 0;8.下面程序段的时间复杂度是。i = s = 0;while ( s n) i +; /* i = i +1*/ s += i; /* s = s + i*/9.下面程序段的时间复杂度
5、是。s = 0;for( i = 0; i n; i+) for( j = 0; j n; j+) s += Bij;sum = s;10.下面程序段的时间复杂度是。i = 1;while ( i top!=0 B. ST-top=0 C. ST-top!= m D. ST-top= m6.判断一个栈ST (最多元素为m) 为满栈的条件是。 A.ST-top!=0 B. ST-top=0 C. ST-top!= m-1 D. ST-top= m-17.栈的特点是1,队列的特点是2。A.先进先出 B.先进后出8.一个队列的入队序列是1、2、3、4,则队列输出序列是。A.4、3、2、1B.1、2、
6、3、4C.1、4、3、2 D.3、2、4、19.判断一个队列QU (最多元素为m) 为空的条件是。A. QU-rearQU-front = m B. QU-rearQU-front1 = m C. QU-front = QU-rear D. QU-frontQU-rear + 110.判断一个队列QU (最多元素为m) 为满队列的条件是。A. QU-rearQU-front = m B. QU-rearQU-front1 = m C. QU-front = QU-rear D. QU-frontQU-rear + 111.判断一个循环队列QU (最多元素为m) 为空的条件是。A. QU-fro
7、nt = QU-rear B. QU-front != QU-rear C. QU-front = (QU-rear + 1) %m D. QU-front != (QU-rear + 1) %m12.判断一个循环队列QU (最多元素为m) 为满队列的条件是。A. QU-front = QU-rear B. QU-front != QU-rear C. QU-front = (QU-rear + 1) %m D. QU-front != (QU-rear + 1) %m13循环队列用数组A0, m-1存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是。A.(rea
8、rfront + m) %m B. rearfront + 1 C. rearfront1 D. rearfront 14.栈和队列的共同点是。A.都是先进后出 B.都是先进先出C.只允许在端点处插入、删除元素 D.没有共同点填空题1.向量、栈和队列都是结构,可以在向量的 位置插入和删除元素;对于栈只能在 插入和删除元素;对于队列只能在 插入元素和删除元素。2.在一个长度为n的向量中的第i个元素(1in)之前插入一个元素时,需向后移动个元素。3.在一个长度为n的向量中的删除第i个元素(1in)时,需要向前移动个元素。4.向栈中压入元素的操作是。5.对栈进行退栈时的操作是。6.在一个循环队列中,
9、队首指针指向队首元素的。7.从循环队列中删除一个元素时,其操作是。8.在具有n个单元的循环队列中,队满时共有个元素的。9.一个栈的输入序列是12345,则栈的输出序列43512是。10.一个栈的输入序列是12345,则栈的输出序列12345是。三、链表单项选择题1.不带头结点的单链表head为空的判定条件是。A.head=NULLB.head-nxt=NULLC.head-next=headD.head!=NULL2.带头结点的单链表head为空的判定条件是。A.head=NULLB.head-nxt=NULLC.head-next=headD.head!=NULL3.非空的循环单链表head
10、的尾结点(由p所指向)满足。A.p-next=NULLB.p=NULLC.p-next=headD.p=head4.在循环双链表的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; 5.
11、在一个单链表中,已知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;6.在一个单链表中,已知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-nex
12、t = p;7.在一个单链表中,若删除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;9.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较个结点。A. n B. n/2 C. (n-1)/2 D. (n+1)/210.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是。A. O(1) B. O(n) C. O(n2) D. O(nlog2n)11.给定有n个元素的向量
13、,建立一个有序单链表的时间复杂度是。A. O(1) B. O(n) C. O(n2) D. O(nlog2n)12.向一个栈顶指针为HS的链栈中插入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;13.从一个栈顶指针为HS的链栈中删除一个结点,用x保存被删除结点的值,则执行。A. x = HS; HS = HS-next; B. x = HS-data;C. HS = HS-next; x = HS-data; D. x
14、 = HS-data; HS = HS-next;14.在一个链队中,假设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;15. 在一个链队中,假设f和r分别为队首和队尾指针,删除一个结点,则执行。A. r = f-next; B. r = r-next;C. f = f-next; D. f = r-next;填空题1.单链表是的链接存储表示。2.可以使用表示树形结构。3.在双链表中,每个结点有两个指针域,一个指向,另
15、一个指向。4. 在一个单链表中,p所指结点之前插入s所指向结点,可执行如下操作:(1)s-next = ;(2)p-next = s;(3)t = p-data;(4)p-data =;(5)s-data =;5.在一单链表中,删除p所指结点时,应执行以下操作:(1)q = p-next;(2)p-data = p-next-data;(3)p-next = ;(4)free (q);6.带头结点的单链表head为空的条件是。7.在一个单链表中,p所指结点之后插入s所指向结点,应执行s-next = 和p-next = 的操作。8.非空的循环单链表head的尾结点(由p所指向),满足。9.在栈
16、顶指针为HS的链栈中,判定栈空的条件是。10. 在栈顶指针为HS的链栈中,计算该链栈中结点个数的函数是。11.在HQ的链队中,判定只有一个结点的条件是。12.在HQ的链队中,计算该栈链中结点个数的函数是。四、串单项选择题1.空串与空格串是相同的,这种说法。A.正确B.不正确2.串是一种特殊的线性表,其特殊性体现在。A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符3.设两个字符串p和q,求q在p中首次出现的位置的运算称作。A.连接B.模式匹配C.求子串D.求串长4.设串s1=ABCDEFG,s2=PQRST,函数con (x, y) 返回x与y串的连接串,函数su
17、bs (s, i, j) 返回串s的从序号i的字符开始的j个字符组成的子串,函数len (s) 返回串s的长度,则con (subs (s1, 2, len (s2), subs (s1, len (s2), 2) 的结果串是。A. BCDEF B. BCDEFG C. BCPQRST D. BCDEFEF填空题1.串的两种最基本的存储方式是。2.两个串相等的充分必要条件是。3.空串是,其长度等于。4.空格串是,其长度等于。5.设s = I AM A TEACHER,其长度是。6.设s1 = GOOD,s2 = ,s3 = BYE!,则s1、s2和s3连接后的结果是。五、数组与稀疏矩阵单项选择
18、题1.常对数组进行的两种基本操作是。A.建立与删除B.索引和修改C.查找和修改D.查找与索引2.二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要 1 个字节;M的第8列和第5行共占2 个字节;若M按行优先方式存储,元素M85的起始地址与当M按列优先方式存储时的3元素的起始地址一致。1 A.90 B.180 C.240 D.5402 A.108 B.114 C.54 D.603 A.M85B.M310 C.M58 D.M093.二维数组M的成员是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到4,列下
19、标j的范围从0到5,M按行存储时元素M35的起始地址与M按列存储时元素的元素的起始地址一致。 A.M24B.M34 C.M35 D.M444.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元素是。A. 80 B. 120 C. 240 D. 2705.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A85的起始地址为。A. SA+141 B. SA+144 C. SA+222 D. SA+2256.数组A中,每个元素的长度为3
20、个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素A58的起始地址为。A. SA+141 B. SA+180 C. SA+222 D. SA+2257.稀疏矩阵一般的压缩存储方法有两种,即。A. 二维数组和三维数组 B. 三元组与散列C. 三元组与十字链表 D. 散列和十字链表8.若用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点。A.正确B.不正确9.设矩阵A是一个对称矩阵,为节省存储,将其下三角部分按行序存放在一信数组B1, n(n-1)/2中,对下三角部分中任一元素aij (ij)
21、,在一组数组B的下标位置k的值是。A. i (i-1)/2+j-1 B. i (i-1)/2+j C. i (i+1)/2+j-1 D. i (i+1)/2+j填空题1.已知二维数组Amn采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A00),则Aij的地址是。2.二维数组A1020采用列序为主方式存储,每个元素占一个存储单元,并且A00的存储地址是200,则A610的地址是。3.二维数组A10.205.20采用行序为主方式存储,每个元素占4个存储单元,并且A105的存储地址是1000,则A189的地址是。4.有一个10阶对称矩阵A,采用压缩存储方式(以行为主
22、存储,且LOC(A00)=1),则A85的地址是。5.设n行n列的下三角矩阵A已压缩到一维数组S1.n*(n+1)/2中,若按行序为主存储,则Aij对应的S中的存储位置是。6.一个稀疏矩阵如图所示,则对应的三元数组表示为。八、树形结构单项选择题1.如图所示的4棵二叉树中,不是完全二叉树。3.在线索化二叉树中,t所指结点没有左子树的充要条件是 。A.t-left = NULL B.t-ltag = 1 C.t-ltag = 1且t-left = NULL D.以上都不对4.二叉树按某种顺序线索化后,任一结点均有指向其前趋和后继的线索,这种说法。A.正确B.错误 5.二叉树的前序遍历序列中,任意一
23、个结点均处在其子女结点的前面,这种说法。A.正确B.错误 6.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法。A.正确B.错误 7.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为。A. 2h B. 2h-1 C. 2h +1 D. h +18.如图所示二叉树的中序遍历序列是。A. abcdgef B. dfebagc C. dbaefcg D. defbagc9.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,前序遍历序列是。A. acbed B. decab C. deabc D. cedba10.如果T2是由有序树T
24、转换而来的二叉树,那么T中结点的前序就是T2中结点的。A. 前序 B. 中序C. 后序 D. 层次序11.如果T2是由有序树T转换而来的二叉树,那么T中结点的后序就是T2中结点的。A. 前序 B. 中序C. 后序 D. 层次序12某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历结点访问顺序是dgbaechf,则其后序遍历结点访问顺序是。A. bdgcefha B. gdbecfha C. bdgaechf D. gdbehfca13.二叉树为二叉排序树的充分必要条件是任一结点的值均大于其左孩子的值、小于其右孩子的值,这种说法。A. 正确 B. 错误14.按照二叉树的定义,具有3个结点
25、的二叉树有种。A. 3 B. 4C. 5 D. 615.如图所示二叉树的中序遍历序列是。A. abdgcefh B. dgbaechf C. gdbehfca D. abcdefgh16.树的基本遍历策略可分为先根遍历和后根遍历;二叉树基本遍历策略可分为先序遍历、中序遍历和后序遍历。这时,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。结论是正确的。A. 树的先根遍历序列与二叉树的先序遍历序列相同B. 树的后根遍历序列与二叉树的后序遍历序列相同C. 树的先根遍历序列与二叉树的中序遍历序列相同D. 以上都不对17.深度为5的二叉树至多有个结点。A. 16 B. 32 C. 31 D. 1018.在一非空二叉树的中序遍历序列中,根结点的右边。A. 只有右子树上的所有结点 B. 只有右子树上的部分结点C. 只有左子树上的所有结点 D. 只有左子树上的部分结点19.树最适合用来表示。A. 有序数据元素 B. 无序数据元素 C. 元素之间具有分支层次关系的数据 D. 元素
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1