数据结构习题教学提纲.docx
- 文档编号:4532093
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:9
- 大小:28.86KB
数据结构习题教学提纲.docx
《数据结构习题教学提纲.docx》由会员分享,可在线阅读,更多相关《数据结构习题教学提纲.docx(9页珍藏版)》请在冰豆网上搜索。
数据结构习题教学提纲
数据结构习题
一、单项选择题
1.下面程序段的时间复杂度为(C)。
for(int i=0; i for(int j=0; j a[i][j]=i*j; A. O(m2) B. O(n2) C. O(m*n) D. O(m+n) 2.设有一个递归算法如下 intfact(intn){//n大于等于0 if(n<=0)return1; elsereturnn*fact(--n); } 则计算fact(n)需要调用该函数的次数为(D)次,不计fact(n)。 A.nB.n+1C.n+2D.n-l 3.评价排序算法好坏的标准主要是(D)。 4.A.执行时间 B.辅助空间 5.C.算法本身的复杂度 D.执行时间和所需的辅助空间 6.在需要经常查找结点的前驱与后继的场合中,使用( B )比较合适。 7.A.单链表 B.双链表 C.顺序表 D.循环链表 8.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行(C)。 A.p = q->next ; p->next = q->next; B.p = q->next ; q->next = p; C.p = q->next ; q->next = p->next; D.q->next = q->next->next; q->next = q; 9.已知单链表A长度为m,单链表B长度为n,若将B联接在A的末尾,其时间复杂度应为(B)。 A.O (1)B.O(m)C.O(n)D.O(m+n) 10.链表不具有的特点是(A)。 11.A.可随机访问任一元素 B.插入删除不需要移动元素 C.不必事先估计存储空间 D.所需空间与线性表长度成正比 12.若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是(A)。 A.s->next=p->next;p->next=s;B.p->next=s;s->next=p->next; C.p->next=s->next;s->next=p;D.s->next=p;p->next=s->next; 13.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为(D)。 A.front==NULLB.front! =NULL C.rear! =NULLD.front==rear 14.栈和队列都是( C )。 A.链式存储的线性结构B.顺序存储的线性结构 C.限制存取位置的线性结构D.限制存取位置的非线性结构 15.对于给定的结点序列abcdef,规定进栈只能从序列的左端开始。 通过栈的操作,能得到的序列为(A)。 A.abcfedB.cabfedC.abcfdeD.cbafde 16.队列通常采用两种存储结构是( A )。 17.A.顺序存储结构和链表存储结构 B.散列方式和索引方式 18.C.链表存储结构和数组 D.线性存储结构和非线性存储结构 19.若让元素1,2,3依次进栈,则出栈次序不可能出现(C)种情况。 A.3,2,1B.2,1,3C.3,1,2D.1,3,2 20.若一个串非空,子串的定位操作通常称为(C)。 A.串的长度B.原串的子串C.串的模式匹配D.串的连接 21.设有一个n×n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中(C)处。 A.(i+3)*i/2B.(i+1)*i/2C.(2n-i+1)*i/2D.(2n-i-1)*i/2 22.在(C)运算中,使用顺序表比链表好。 23.A.插入 B.删除 C.根据序号查找 D.根据元素值查找 24.带头结点的单链表head为空的判断条件是( C )。 25.A.head==NULL B.head->next==NULL C.head->next=head D.head! =NULL 26.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(C)最节省时间。 A)单链表 B)循环链单表 C)带尾指针的循环链单表 D)带头结点的双循环链表 27.栈的插入与删除操作在(A)进行。 A.栈顶 B.栈底 C.任意位置 D.指定位置 28.设一个栈的输入序列为A、B、C、D,则借助一个栈所能得到的输出序列不可能是(D)。 29.A.ABCD B.DCBA C.ACDB D.DABC 30.在一个链队中,假设F和R分别是队首和队尾指针,则删除一个结点的运算是(C)。 31.A.R=F->next; B.R=R->next; C.F=F->next; D.F=R->next; 32.串是一种特殊的线性表,其特殊性体现在(B)。 33.A.可以顺序存储 B.数据元素是一个字符 34.C.可以链接存储 D.数据元素可以是多个字符 35.以下说法正确的是(C)。 A)空串与空格串是相同的B)“fox”是“FoxBase”的子串 C)空串是零个字符组成的串D)空串长度等于1 36.若n为主串长,m为子串长(m A.m B.m(n-m+1) C.n*m D.(n-m)*(m-1) 37.将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1..298]中,A中元素A[66,65]在B数组中的位置k为(B)。 A)198B)195C)197 38.一个稀疏矩阵的转置矩阵应是(B)。 A.下三角矩阵B.稀疏矩阵C.非稀疏矩阵D.有时为稀疏矩阵 39.广义表((e))的表头是(C)。 A)eB)()C)(e)D)((e)) 40.深度为5的二叉树至多有( C )个结点。 41.A.16 B.32 C.31 D.10 42.具有10个叶子结点的二叉树中有(B)个度为2的结点。 A.8B.9C.10D.11 43.在二叉树的中序遍历递归算法中,顺着搜索路径,在第(B)次经过结点时作访问操作。 44.A.1 B.2 C.3 D.4 45.在中序线索二叉树中,若某结点有右孩子,则该结点的直接后继是(D)。 46.A左子树的最右下结点 B右子树的最右下结点 47.C左子树的最左下结点 D右子树的最左下结点 48.按照二叉树的定义,具有3个结点的二叉树有( C )种形态。 A.3 B.4 C.5 D.6 49.某二叉树的先序序列和后序序列正好相反,则该二叉树一定是(B)的二叉树。 50.A.空或只有一个结点 B.高度等于其结点数 51.C.任一结点无左孩子 D.任一结点无右孩子 52.图的广度优先搜索类似于树的(D)次序遍历。 A.先根B.中根C.后根D.层次 53.n个顶点的强连通图中至少含有(B)。 A.n-l条有向边B.n条有向边 C.n(n-1)/2条有向边D.n(n-1)条有向边 54.任何一个无向连通图的最小生成树(B)。 55.A.只有一棵B.有一棵或多棵C.一定有多棵 D.可能不存在 56.设G1=(V1,E1)和G2=(V2,E2)为两个图,如果V2包含V1,E2包含E1,则称(A)。 57.A.G1是G2的子图 B.G1是G2的连通分量 58.C.G2是G1的连通分量 D.G2是G1的子图 59.下面关于图的存储的叙述中,哪一个是正确的。 (A) 60.A.用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,与边数无关 61.B.用邻接矩阵法存储图,占用的存储空间数只与图中边数有关,与结点个数无关 62.C.用邻接表存储图,占用的存储空间数只与图中结点个数有关,与边数无关 63.D.用邻接表存储图,占用的存储空间数只与图中边数有关,与结点个数无关 64.(D)适合用邻接表表示。 65.A.稠密图 B.有向完全图 66.C.无向完全图 D.稀疏图 67.一般,图的DFS生成树的高度(C)BFS生成树的高度。 68.A.小于 B.等于 C.大于 D.小于或等于 69.从一棵二叉排序树中查找一个元素时,其平均时间复杂度为(C)。 A.O (1)B.O(n)C.O(1og2n)D.O(n2) 70.二分查找法要求查找表中各元素的键值必须是(A)排列。 71.A.递增或递减 B.递增 C.递减 D.无序 72.向具有n个结点的、结构均衡的二叉排序树中插入一个元素的时间复杂度为(B)。 A.O (1)B.O(log2n)C.O(n)D.O(nlog2n) 73.线性表必须是(D),才能进行二分查找。 74.A.用向量存储的线性表 B.用链表存储的有序表 75.C.用链表存储的线性表 D.用向量存储的有序表 76.按照不同的顺序输入4,5,6三个关键字,能建立(B)棵不同的二叉排序树。 A)6B)5C)4D)3 77.在一棵m阶B-树中,若在某结点中插入一个新关键字而引起该结点的分裂,则该结点中原有(D)个关键字。 A)⎣m/2⎦B)⎣m/2⎦-1C)mD)m-1E)⎡m/2⎤F)⎡m/2⎤-1 78.设有5000个无序的元素,希望用最快的速度挑选出其中前50个最大的元素,最好选用( C )法。 79.A.冒泡排序 B.快速排序 80.C.堆排序 D.基数排序 81.下列序列中(B)是执行第一趟快速排序后得到的序列(排序的关键字类型是字符串)。 82.A.[da,ax,eb,de,bb]ff[ba,gc] B.[cd,eb,ax,da,bb]ff[ha,gc] 83.C.[gc,ax,cb,cd,bb]ff[da,ba] D.[ax,bb,cd,da]ff[eb,gc,ba] 84.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是(B)。 85.A.O (1) B.O(n) C.O(n2) D.O(log2n) 86.以下排序方法中,稳定的排序方法是(B)。 87.A.直接插入排序和希尔排序 B.直接插入排序和冒泡排序 88.C.希尔排序和快速排序 D.冒泡排序和快速排序 89.在快速排序中,每次划分选择的基准元素为该区间的(D)时,得到的两个子区间是均匀的。 90.A.最大值 B.最小值 C.任意值 D.中间值 91.若从二叉树的任一结点出发到根的路径上所经过的结点序列按关键字有序,则该二叉树是下列树中的哪种? (C) A.二叉排序树B.哈夫曼树C.堆。 二、填空题 1.在一个长度为n的顺序表中删除第i个元素,要移动__n-i___个元素。 2.在顺序表中插入或删除一个元素,需要平均移动表长的一半元素,具体移动元素的个数与元素所在的位置有关。 3.若线性表采用顺序存储结构存放,那么在长度为n的线性表中删除第i(1≤i≤n)个数据元素需要移动n-i个数据元素,在长度为n的线性表中第i(1≤i≤n)个数据元素之前插入一个新的数据元素需要移动n-i+1个数据元素。 4.在非空的单循环链表h中,某个结点p为尾结点的条件是p->next=h。 5.一个队列的入队序列是a、b、c、d,则队列的输出序列为__abcd___。 6.栈结构通常采用的两种存储结构是__顺序栈___和_链栈___。 7.设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过栈S,一个元素出栈后即进入队列Q。 若这6个元素出队列的顺序是b、d、c、f、e、a,则栈S的容量至少应该是3。 8.设有一个n×n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中(2n-i+1)*i/2处。 9.设有5对角矩阵A=(aij)20*20,按特殊矩阵压缩存储的方式将其5条对角线上的元素存于数组B[0: m]中,计算元素A[10,10]的存储位置44。 10.已知广义表L=(a,((),b),((e))),利用取表头和取表尾的操作分离出原子e的运算是GetHead(GetHead(GetHead(GetTail(GetTail(L)))))。 11.设广义表B=((),(a,(b,c)),(e,f),()),表头为(),表尾为(a,(b,c)),(e,f),()。 12.在空串和空格串中,长度不为0的是___空格串__。 13.有n个结点的二叉链表中,其中空的指针域为n+1.指向孩子的指针个数为__n-1__。 14.中缀算术表达式5+6/(23-(6+15))*8 所对应的后缀算术表达式为__5,6,23,6,15,+,-,/,8,*,+___。 15.假定一棵二叉树的结点个数为50,则它的最小深度为___6___,最大深度为__50___。 16.一棵树的后根序列与其转换的二叉树的中序列相同,先根序列与其转换的二叉树的先序列相同。 17.具有400个结点的完全二叉树的深度为____9_____。 18.一棵二叉树有67个结点,这些结点的度要么是0,要么是2。 这棵二叉树中度为2的结点有__33___个。 19.已知森林的先序访问序列为ABCDEFGHIJKL;中序访问序列为CBEFDGAJIKLH。 则该森林有__2__棵树。 20.当对字符集进行编码时,字符集中任一字符的编码都不是其他字符的编码的前缀,这种编码称__二进制前缀编码____。 21.高度为h的二叉树只有度为0和2的结点,则此类二叉树的结点数至少为2h-1+1个结点,至多为2h-1个结点。 22.深度为k的完全二叉树至少有2k-1个结点,至多有2k-1个结点。 23.一个有30个结点的完全二叉树有15个叶子结点;有14个度为2的结点。 24.高度为i(i≥1)的完全二叉树按自上而下,从左到右的次序给结点编号(从1开始),则可能的编号最小的叶子结点的编号为2k-2+1。 25.设图G=(V,E),V={1,2,3,4},E={ 26.有向图G用邻接矩阵A[1..n,1..n]存储,矩阵中元素值1代表有弧,0代表无弧,其第i行的所有元素之和等于顶点i的__出度___度。 27.一个连通图的生成树是该图的极小连通子图。 若这个连通图有n个顶点,则它的生成树有__n-1___条边。 28.n个顶点的无向连通图的邻接矩阵中至少有__2(n-1)__个非零元素,至多有_n(n-1)__个非零元素。 29.PRIM算法与图的边数无关,适合求解稠密图的最小生成树。 30.一棵3阶B-树中每个结点最多有3棵子树,每个结点最多有2个关键字。 含有9个叶子结点的3阶B-树至少有4个非叶结点,至多有7个非叶结点。 31.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为__1___和__3__。 32.向一棵二叉排序树中插入一个元素时,若元素的值小于根结点的值,则应把它插入到根结点的__左子树上。 33.分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态递增序列按递增顺序排序,最省时间的是算法插入排序,最费时间的是算法快速排序。 三、简答及图示说明题 1.广义表的基本概念,如A=((a,b),c,(d,e,f)),用GetGead和GetTail操作取元素d 2.根据给定二叉树的先序和中序序列,构造二叉树 3.根据给定树的先序和后序序列,构造树 4.已知二叉树,画出中序的线索。 5.森林和二叉树的相互转换 6.有7个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点生成一棵哈夫曼树,画出相应的哈夫曼树(左子树根结点的权小于等于右子树根结点的权),并写出哈夫曼编码,计算带权路径长度。 7.给出图的顶点集合和边的集合,能画出图的邻接矩阵、邻接表,或者给出图的存储结构,能够画出对应的图 8.用普里姆(prim)算法或克鲁斯卡尔(Kruskal)算法构造最小生成树。 9.从某个顶点出发,画出图的深度优先生成树和广度优先生成树。 10.设图G=(V,E),V={1,2,3,4,5,6},E={<1,2>,<1,3>,<2,5>,<3,6>,<6,5>,<5,4>,<6,4>}。 请写出图G中顶点的所有拓扑序列。 11.已知一个图的顶点集V和边集G分别为: V={0,1,2,3,4,5,6,7}; G={(0,1)3,(0,3)5,(0,5)18,(1,3)7,(1,4)6,(2,4)10,(2,7)20,(3,5)15,(3,6)12,(4,6)8,(4,7)12}; 按照普里姆算法从顶点2出发得到最小生成树,试写出在最小生成树中依次得到的各条边。 12.设a1、a2、a3是不同的关键字,且a1>a2>a3,可组成六种不同的输入序列。 问其中哪几种输入序列所构造的二叉排序树的高度为3? 13.构造二叉排序树,在查找每个结点概率相等情况下的平均查找长度,二叉排序树的插入和删除算法 14.画出用线性探测再散列(线性探查法)处理冲突时生成的哈希表及计算平均查找长度 15.画出用外链法处理冲突时生成的哈希表及计算查找成功时的平均查找长度 16.对于一组记录的排序码为(465,792,562,383,401,845,502,423),写出基数排序(低位优先)进行一趟分配与回收后的结果。 17.给定健值序列{49,38,65,97,76,13,27,49*},要求按关键字递增排序,分别写出直接插入排序、起泡排序、简单选择排序、归并排序、快速排序的第一趟和第二趟排序结果 18.初建堆和筛选法调整堆(小顶堆、大顶堆)算法,给定序列,画出堆对应的完全二叉树的初始状态和初建堆的状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题 教学 提纲