数据结构重点习题
文章平均质量分 95
以数据结构的整个大纲为范围,适合期末复习、自学、考研数据结构等人群使用,包括了数据结构和算法基本概念、顺序表、链表、栈、队列、循环队列、串、树与二叉树、图、查找、排序等章节的精选重要习题。
晚风(●•σ )
期待与你共同努力,感谢你的关注!
展开
-
<长篇文章!!>数据结构与算法的重要知识点与概要总结 ( •̀ ω •́ )✧✧临近考试和查漏补缺的小伙伴看这一篇就都懂啦~
由于在含有n个结点的二叉树的链式存储结构中,有n+1个空指针,对于叶子结点,它有两个空指针;,即链式存储的存储结构所占存储空间分两部分,一部分存放结点的值,另一部分存放表示结点间关系的指针(结点内的存储单元要求连续,而不同结点的存储空间可以不连续),例如,顺序表的存储密度=1,而链表的存储密度原创 2023-12-20 22:47:16 · 488 阅读 · 2 评论 -
【数据结构】——排序算法的相关习题
若第一趟排序结果为(1, 3, 7, 5, 2, 6, 4, 9, 11, 10, 8),第二趟排序结果为(1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9),则两趟排序采用的增 量(间隔)依次是()。而最坏情况下,即排好的序列刚好与初始序列相反,呈逆序排列,则此时需要进行n-1趟排序,第i趟排序中要进行n-i次比较,即比较次数=交换次数=n(n-1)/2,由于每次交换都会移动3次元素从而来交换元素,即移动次数为3n(n-1)/2,故。,所以一共比较次数为5+4+3+2+1=15次。原创 2023-09-10 17:17:34 · 2554 阅读 · 8 评论 -
【数据结构】——查找、散列表的相关习题
low指针一开始指向13,high指针一开始指向134,所以mid指向50,第一次比较90>15,所以low+1,high指针不变,此时low指针指向62,high指针指向134,即mid指向90,即第二次比较时找到目标元素,查找成功的比较次数为2。1、已知有序表(13,18,24,35,47,50,62,83,90,115,134),当二分查找值为90的元素时,查找成功的比较次数为()。,查找成功或不成功,关键字的比较次数始终是n+1次,当定位至第i个元素时,关键字的比较次数为n-i+1。原创 2023-08-28 18:30:49 · 2365 阅读 · 5 评论 -
【数据结构】——图的相关习题
此时访问顶点4的邻接顶点,由于顶点2已经被访问,可选择访问顶点3和顶点5和顶点6,选择顶点3,此时的序列为{1,2,4,3};1、无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a,c),(a,e),(b,e),(c,f),(f,d),(e,d)},以顶点a为源点对该图进行深度优先遍历,得到的顶点序列正确的是()……5、查看单链表4,顶点1、顶点2、顶点3已经访问过,所以其未访问的邻接顶点为5,再以顶点5为出发点继续深度遍历,此时序列为{1,2,3,4,5}。原创 2023-06-26 18:54:40 · 3343 阅读 · 9 评论 -
【数据结构】——树和二叉树的相关习题
另外,由于每个结点中包含2个指针域(左指针域lchild、右指针域rchild),总指针域数量减去非空指针数即为空指针数,2n-(n-1)=n+1。考虑第1层到第6层结点都是满的情况,即第1层到第6层结点的结点数量为1+2+4+8+16+32=63个。最少的情况下,除了根结点该层为1个结点以外,其余h-1层都有2个结点,得2(h-1),即2(h-1)+1=2h-1。1、设高度为h的二叉树上只有度为0和度为2的结点,则该二叉树中所包含的结点数至少为(),最多为()。B、中序遍历序列与后序遍历序列相同,为()原创 2023-06-01 15:15:17 · 2790 阅读 · 7 评论 -
【数据结构】——多维数组、矩阵以及广义表的相关习题
A[i][j]前面有i行元素,每行元素有n个,A[i][j]为本行第j+1个元素,有j个元素位于其前,共有i×n+j个元素,每个元素占l个存储单位,即(i×n+j)× l,再加上元素A[0][0]的存储地址,所以元素A[i][j]=b+(i×n+j)× l。1、设串s1=“ABCDEFG”,s2=“12345”,则strconcat(strsub(s1,2,strlen(s2)),strsub(s1,strlen(s2),2))的结果串是()。1、对n阶对称矩阵压缩存储时,需要表长为()的顺序表。原创 2023-07-29 18:07:52 · 1078 阅读 · 0 评论 -
【数据结构】——栈、队列及串的相关习题
入队操作针对Q.rear,入队的代码通过取余运算实现,队尾指针加1,即Q.rear=(Q.rear+1)%MaxSize,不管前面(Q.rear+1)为多少,它与MaxSize(例如,MaxSize=5)取余的结果只可能是0、1、2、3、4,也就是队尾指针Q.rear的每次移动加1。1、设栈S和队列Q的初始状态为空,元素a,b,c,d,e,f依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是a,c,f,e,d,b,则栈S的容量至少应该是()。b、c通过栈S后,c首先出栈通过队列,得到出队为。原创 2023-08-09 11:09:59 · 2048 阅读 · 6 评论 -
【数据结构】——线性表的相关习题
若将删除结点 * p的操作转换为删除结点 * p的后继结点来实现,将下一个结点的指针域指向上一个结点,在交换数据域后,将* q结点从单链表中断开并释放该结点即可,这样的时间复杂度为O(1)。,也是将新结点的指针域指向下一个结点,该结点与前一个结点连接,然后通过一个中间变量将上一个结点的数据域与该结点交换即可,从而使时间复杂度达到。3、在单链表中删除第i个结点的时间复杂度为(),若将删除结点 * p的操作转换为删除结点 * p的后继结点来实现,其时间复杂度为()。时,则该双链表为空。原创 2023-08-01 17:15:31 · 1400 阅读 · 2 评论 -
【数据结构】——数据结构概论习题
元素A[i][j]的前面一共有i行元素,每行元素有n个,A[i][j]为本行的第j+1个元素,j个元素位于其前面,所以共有i * n + j个元素,每个元素占用l个存储单位,乘以l,另外加上元素A[0][0]的存储地址,即元素A[i][j]的存储地址是b + ( i * n + j ) * l。例如栈和队列的逻辑结构都是相同的(线性结构,都是操作受限制的线性表),存储结构也相同(顺序和链式),但由于其运算集合不同,从而成为不同的数据结构。A、分两部分,一部分存放结点的值,另一部分存放表示结点间关系的指针。原创 2023-05-31 15:05:09 · 1462 阅读 · 0 评论