数据结构习题.docx
- 文档编号:6985771
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:61
- 大小:146.30KB
数据结构习题.docx
《数据结构习题.docx》由会员分享,可在线阅读,更多相关《数据结构习题.docx(61页珍藏版)》请在冰豆网上搜索。
数据结构习题
《数据结构》习题集
班级:
__________________
学号:
__________________
姓名:
__________________
2010年9月
第1章绪论
一、选择题
1.某程序的时间复杂度为(3n+nlog2n+n2+8),其数量级表示为()。
A.O(n)B.O(nlog2n)
C.O(n2)D.O(log2n)
2.计算机算法指的是()。
A.计算方法B.排序方法
C.解决某一问题的有限运算序列D.调度方法
3.算法分析的目的是()
A.研究算法的输入与输出之间的关系
B.找出数据结构的合理性
C.分析算法的效率以求改进算法
D.分析算法的可读性与可移植性
4.下面程序段的时间复杂度为()
for(inti=0;i for(intj=0;j a[i][j]=I*j; A、O(mª)B、O(nª)C、O(m*n)D、O(m+n) 5.计算机内部数据处理的基本单位是()。 A.数据B.数据元素C.数据项D.数据库 6.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1;i<=n;i++) for(j=i;j<=n;j++) x++; A.O (1)B.O( )C.O(n)D.O( ) 二、填空题 1.我们一般通过和来度量一个算法的性能。 2.计算机内部数据处理的基本单位是。 3.数据结构按逻辑结构可分为两大类,分别是______________和_________________。 4.数据的存储结构被分为_________、__________、_________和_________四种。 5.通常从四个方面评价算法的质量: _________、_________、_________和_________。 6.数据结构是一门研究的学科. 7.算法有五个重要特性,即: 、,,和。 8.数据逻辑结构包括,,三种类型。 三、综合题 1.常用的存储表示方法有哪几种,并简述其原理。 2.数据的逻辑结构、数据的存储结构及数据的运算之间存在着怎样的关系? 第2章线性表 一、选择题 1.若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用()存储方式最节省时间。 A.单链表B.双链表 C.带头结点的双循环链表D.单循环链表 2.一个单链表中,若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; 3.线性链表不具有的特点是()。 A.随机访问B.不必事先估计所需存储空间的大小 C.插入与删除时不必移动元素D.所需空间与线性表长度成正比 4.设有一个10阶的对称矩阵A[10][10],采用压缩存储方式按行将矩阵中下三角部分的元素存入一维数组B[]中,A[0][0]存入B[0]中,则A[8][5]在B[]中()位置。 A.32B.33C.41D.65 5.在由list所指的非空线性链表中删除由p指的链结点的下一个链结点的过程是依次执行q←link(p),,callRET(q)。 () A.link(p)←qB.link(q)←p C.link(q)←link(p)C.link(p)←link(q) 6.单链表中,增加一个头结点的目的是为了( )。 (A)使单链表至少有一个结点 (B)标识表结点中首结点的位置 (C)方便运算的实现 (D)说明单链表是线性表的链式存储 7.向一个有127个元素的顺序表中插入一个新元素并保持原来的顺序不变,平均要移动()个元素。 A、8B、63.5C、63D、7 8.带头结点的单链表head为空的判断条件是()。 A、head=nullB、head->next=nullC、head->next=headD、head! =null 9.设有一个递归算法如下 intfact(intn){ if(n<=0)return1; elsereturnn*fact(n-1);} 下面正确的叙述是()。 A、计算fact(n)需执行n次递归B、fact(7)=5040 C、此递归算法最多只能计算到fact(8)D、以上结论都不对 10.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()。 (1≤i≤n+1) A.O(0)B.O (1)C.O(n)D.O(n2) 11.使用双向链表存储结构,其优点是可以(). A.提高检索速度B.很方便地插入和删除数据 C.节约存储空间D.很快回收内存 12.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( ) A.p=p->next; B.p->next=p->next->next; C.p->next=p; D.p=p->next->next; 13.在由list所指的非空线性链表中删除由p指的链结点的下一个链结点的过程是依次执行q←link(p),,callRET(q)。 () A.link(p)←qB.link(q)←p C.link(q)←link(p)C.link(p)←link(q) 14.在一个有N个元素的顺序表里,若想在第i个元素之前(1<=i<=n+1)插入一个元素时,需要向表尾方向移动——个元素。 d An-iBn-1C1Dn-i+1 15.线性表的动态链表存储结构与顺序存储结构相比,优点是() A所有的操作算法简单B便于随即存取 C便于插入与删除D便于利用零散的存储器空间 16.线性表采用链式存储结构时,要求内存中可用存储单元的地址() A、必须是连续的B、部分地址必须是连续的 D、一定是不连续的E、连续或不连续都可以 17.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低B.高C.相同D.不好说 18.带头结点的单链表为空的判定条件是() A、head==NULLB、head->next==NULL C、head->next==hesdD、head! =NULL 二、填空题 1.在双向链表中,每个结点有两个指针域,一个指向其结点,另一个指向其________结点。 2.对矩阵采用压缩存储是为了_______。 3.带头结点的双循环链表L为空表的条件是_______。 4.在双链表中,在指针P所指结点前面插入一个结点S∧时的语句序列是: S->next=P;S->prior=P->prior;P->prior=S;_______; 5.设head为单链表的头结点,则判断单链表为空的条件是: _________。 6.矩阵压缩存储的基本思想是: _________的多个元素只分配一个存储空间,_________不分配空间。 7.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新的数据元素前,需要先依次移动个数据元素。 8.在非空双向循环链表中由q所指的那个链结点后插入一个由p指的链结点的动作对应的语句依次为: llink(p)←q,rlink(p)←rlink(q),rlink(q)←p,。 (空白处为一条赋值语句) 9.已知具有n个元素的一维数组采用顺序存储结构,每个元素占k个存储单元,第一个元素的地址为LOC(a1),那么,LOC(ai)=。 10.在双向链表中,每个结点有两个指针域,一个指向其_____________结点,另一个指向其_____________结点。 11.在一个长为n的顺序表的第i个数据元素(1≤i≤n+1)前插入一个元素时,需向后移动_____________个元素。 12、删除长为n的顺序表中的第i个数据元素(1≤i≤n)时,需向前移动_______个元素。 13、设二维数组A[m][n]以行序为主序存储,每个元素占k个存储单元,且第一个元素的存储地址为LOC(0,0),则LOC(i,j)=_____________。 14、设二维数组A[10][20]以列序为主序存储,每个元素占1个存储单元,且A[0][0]的存储地址为332,则A[6][12]的地址为_____________。 15.单链表是的链接存储表示。 16.在双向链表中,每个结点有两个指针域,一个指向另一个指向。 三、综合题 1.线性表的顺序存储结构和链式存储结构各有哪些优缺点? 2.设顺序表L是一个递减有序表,试写一算法,将x插入其后仍保持L的有序性。 第3章栈和队列 一、选择题 1.队列的插入操作是在()进行。 A.队首B.队尾 C.队前D.对后 2.一个栈的输入序列为12345,则下列序列中不可能是栈的输出序列的是() A.23415B.54132 C.23145D.15432 3.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为() A.r-fB.r-f+1 C.(r-f)modn+1D.(r-f+n)modn 4.队列操作的原则是() A.先进先出B.后进先出 C.只能进行插入D.只能进行删除 5.环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()。 A.(rear-front+m)MODmB.rear-front+1 C.rear-front-1D.rear-front 6.栈和队列的共同特点是()。 A.都是先进后出B.都是先进先出 C.只允许在端点处插入和删除元素D.没有共同点 7.向顺序栈中压入新元素时,应当()。 A.先移动栈顶指针,再存入元素B.先存入元素,再移动栈顶指针 C.先后次序无关紧要D.同时进行 8.依次在初始为空的队列中插入元素为a,b,c,d以后,紧接着作了两次删除操作,此时的队头元素是() A.aB.b C.cD.d 9.若某堆栈的输入序列为1,2,3,…,n-1,n,输出序列的第1个元素为n,则第i个输出元素为() A.n-i+1B.n-1 C.ID.哪个元素无所谓 10.若让元素1、2、3依次进栈,则出栈次序不可能的出现的()种情况。 A、3、2、1B、2、1、3C、3、1、2D、1、3、2 11.后缀表达式“45*32+-”的值为()。 A、15B、6C、30D、60 12.设计一个判断表达式中左右刮号是否匹配的算法,采用()数据结构最佳 A.线形表的顺序存储结构B.栈 C.队列D.线形表的链式存储结构 13.栈修改的原则是()。 A.先进先出B.后进先出 C.后进后出D.在栈的任一位置都可进行插入和删除 14.栈的插入和删除操作在()进行。 A.栈顶 B. 栈底 C. 任意位置 D.指定位置 15.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()。 A.(rear-front+m)MODmB.rear-front+1C.rear-front-1D.rear-front 16.判定“带头结点的链队列为空”的条件是( ) A.Q.front==NULL B.Q.rear==NULL C.Q.front==Q.rear D.Q.front! =Q.rear 17.依次读入数据元素{A,B,C,D,E,F,G}进栈,每连续进两个元素,就退一个出栈,则栈弹出的元素进入另一个栈序列是() A{A,C,E,G}B{B,D,F}C{D,E,F,G}D{F,D,B} 18.栈结构通常采用的两种存储结构是() A、顺序存储结构和链表存储结构B、散列方式和索引方式 C、链表存储结构和数组D、线性链表结构和非线性存储结构 19.一个队列的入序列是1,2,3,4,则队列的输出序列是()。 A、4,3,2,1B、1,2,3,4C、1,4,3,2D、3,2,4,1 二、填空题 1.从一个栈删除元素时,首先取出,然后再前移一位。 2.后缀表达式“210+5*6–9/”的值为。 3.在具有n个单元的循环队列中,队满时共有_________个元素。 4.栈中能进行元素插入和删除操作的一端称_________,另一端称_________。 5.队列中能进行插入操作的一端称_________,能进行删除操作的一端称_________。 6.顺序栈S的栈空判定条件为,栈中元素个数的计算公式为。 7.链栈中头结点的指针域所指向的结点为栈元素。 三、综合题 1.写出以下程序段的输出结果(队列中的元素类型为: elemtp=char)。 VAR Q: queue; x,y: char; BEGIN x: =’e’;y: =’s’; EnQueue(Q,’i’);EnQueue(Q,’a’);EnQueue(Q,y); x: =DlQueue(Q);EnQueue(Q,x); x: =DlQueue(Q);EnQueue(Q,’n’); WHILENOTempty(Q)DO BEGIN y: =DlQueue(Q);Write(y) END; Writeln(x) END; 输出结果是: 2.voidCC(Stack&S) { Pop(S); Push(S,50); Push(S,45); Peek(S); } 假定调用算法时栈S中已有2个元素(23,16)的栈,其中23时栈底,调用后得到的栈内容为(从栈底开始排列): 3.假设称正读和反读都相同的字符序列为“回文”,例如: "abba"和"abcba"是回文,"abcde"和"ababab"则不是回文。 试写一个算法判别读入的一个以'@'为结束符的字符序列是否是回文 第7章树和二叉树 一、选择题 1.二叉树上叶结点数等于()。 A.分支结点数加1B.单分支结点数加1 C.双分支结点数加1D.双分支结点数减1 2.某二叉树的先序序列和后序序列正好相同,则该二叉树一定是()的二叉树。 A.空或只有一个结点B.高度等于其结点数 C.任一结点无左孩子D.任一结点无右孩子 3.在有n个结点的二叉链表中,值为非空的链域的个数为() A.n-1B.2n-1 C.n+1D.2n+1 4.一棵左右子树均不空的二叉树在先序线索化后,其空指针域数为() A.0B.1 C.2D.不确定 5.有64个结点的完全二叉树的深度为()(根的层次为1)。 A.8B.7 C.6D.5 6.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则应作()型调整以使其平衡。 A.LLB.LR C.RLD.RR 7.度为n的二叉树中所含叶子结点的个数最多为()个。 A.2nB.nC.2n-1D.2n-1 8.树结构最适合用来表示()。 A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 9.设F是一个森林,B是由F转换得到的二叉树,F中有n个非叶结点,则B中右指针域为空的结点有()个。 A.n-1B.nC.n+1D.n+2 10.具有65个结点的完全二叉树的高度为()。 (根的层次号为0) A.8B.7C.6D.5 11.已知非空二叉树采用顺序存储结构,树中结点的数据信息依次存放在一个一维数组中,即 该二叉树的中序列遍历序列为() A.G,D,B,A,F,H.C,EB.G,B,D,A,F,H,C,E C.B,D,G,A,F,H,C,ED.B,G,D,A,F,H,C,E 12.在一棵度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,那么,该树有个叶结点。 () A.4B.5 C.6D.7 13.在单链表、m叉树、栈、队列中,不可以利用顺序存储的数据结构是()。 A队列B、单链表C、栈D、m叉树 14.树最适合用来表示()。 A.有序数据元素B.无序数据元素 C.元素之间具有分支层次关系的数据D.元素之间无联系的元素 15.3个结点有()不同形态的二叉树 A.2B.3C.4D.5 16.由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( ) A.24 B.71 C. 48 D.53 17.一棵含18个结点的二叉树的高度至少为( ) A.3 B.4 C.5 D.6 18.若一个叶子结点是某二叉树中的中序遍历序列的最后一个结点,同时它也是。 A前序遍历序列的最后一个结点B后序遍历序列的最后一个结点 C前序遍历序列的最前一个结点D后序遍历序列的最前一个结点 19.一个完全二叉树中一个结点编号是I,若i结点的左孩子的右孩子存在,则该结点的编号为____. A2i+1B4i+1C2(2i+1)Di/2 20.下列哪一种二叉树满足性质: 从任意结点出发访问根结点,关键字有序() A哈夫曼树Bavl树C二叉排序树D堆 21.深度为5的二叉树至多有()个结点。 A、16B、32C、31D、10 22.对一个满二叉树,m个树叶,n个结点,深度为为h,则()。 A、N=h+mB、h+m=2nC、m=h-1D、n=2h-1 23.任何一棵二叉树的叶结点在先序,中序和后序遍历中的相对多次序() A、不发生改变B、发生改变C、不能确定D、以上都不对 24.如果T2是由有序树T转换而来二叉树,那麽T中结点的前序就是T2中结点的(). A、前序B、中叙C、后序D、层次序 二、填空题 1.一棵深度为5的二叉树,至多有个结点。 2.若对一棵二叉树的结点编号从0开始顺序编码,按顺序存储,把编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左孩子元素为________,右孩子元素为________,双亲元素(i>0)为________。 3.深度为K的完全二叉树至少有_______个结点,至少多_____个结点,具有n个结点的完全二叉树若按自上而上,自左到右次序给结点编号,最左叶结点的编号为______,用含n的表达式表示的深度为_______ 4.在有n个叶子结点的哈夫曼树中,总结点数是_______。 5.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。 6.高度为h的二叉树上只有度为0和2的结点,则此类二叉树中所包含的结点数至少为_______。 7.二叉树中度为0的结点数为50,度为1的结点数为30,总结点为______. 8.判断线索二叉树中某结点指针P所指结点有左孩子的条件是___________。 9.树的三种常用存储结构是: 孩子链表表示法、_________和_________。 10.深度为K的完全二叉树至少有_________个结点,至多有_________个结点。 11.二叉排序树上,结点的平衡因子定义为该结点_________子树的高度减去该结点_________子树的高度。 12.具有2000个结点的二叉树,其深度至少为。 13.具有n0个叶结点的哈夫曼树(Huffman)的分支总数为。 14.一棵深度为5的二叉树,至多有_____________个结点。 15.设有树如图所示,则结点c的度为__________,层次为__________,树的度为__________,树的高度为__________。 16.深度为k的完全二叉树至少有__________个结点,最多有__________个结点。 17.由三个结点构成的二叉树,共有____种不同的形态。 18.设高度为h的二叉树中只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为________。 19.深度为k的完全二叉树至少有个结点,最多有个结点。 20、若按层序对深度为k的完全二叉树中全部结点从1开始编号,则叶子结点可能的最小编号为。 21、设有二叉树如图所示,其先序遍历序列为,中序遍历序列为,后序遍历序列为,层序遍历序列为。 22.对一个完全二叉树深度为k,则它最多有个结点,k层最多有个结点。 23.由n个权值构成的哈夫曼树共有个结点。 三、综合题 1.一棵二叉树的层序序列为ABCDEFGHIJ,中序序列为DBGEHJACIF,求这棵二叉树,并描述中间的求解过程. 2.在一份电文中共使用五种字符: A,G,F,U,Y,Z,它们的出现频率依次为12,9,18,7,14,11,求出每个字符的哈夫曼编码。 3.计算二叉数的的深度。 intBtreeDepth(BTreeNode*BT) { if(BT==NULL) return0; else { intdep1,dep2; dep1=; dep2=; if(dep1>dep2); return; } } 4.已知一棵二叉树的先序序列是ABCDEFGHIJK,中序序列是CDBGFEAHJIK,请构造出该二叉树。 5.已知一树的双亲表示法如下,其中各兄弟结点是依次出现的,画出该树及对应的二叉树。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 data A B C D E F G H I J K L M N O parent 0 1 1 1 2 2 3 3 4 4 5 6 6 7 8 6.写出求解二叉树的深度的算法。 7.已知二叉树中的结点类型用BinT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题