数据结构期末自测题(对2020武大信管数据结构PPT的针对性复习题)
作者:互联网
数据结构复习题
命题人:20信二 郭宗涵
1.简述数据结构的概念。(4个点)
2.G={<k1,k3>,<k1,k8>,<k2,k3>,<k2,k4>,<k2,k5>,<k3,k9>,<k5,k6>,<k8,k9>,<k9,k7>,<k4,k7>,<k4,k6>}, <a,b>表示一条边的起点与终点,求该图的开始起点与结束终点。
3.简述空间复杂度概念。
4.根据表格整理出链表数据的正确顺序。
5.说明循环单链表与单链表,循环双链表与双链表的区别。
6.带虚拟头结点的单链表和不带虚拟头结点的单链表的优势体现在哪里?如何应对将头结点与虚拟头结点弄混的出题人?
(和不带虚拟头结点的单链表相比,带虚拟头结点的单链表不仅统一了第一个结点及其后继结点的处理过程,还统一了空表和非空表的处理过程。)
[203. 移除链表元素]
https://leetcode-cn.com/problems/remove-linked-list-elements/
7.对单链表,哪边是头,哪边是尾?插入时,(A)与(B)能否交换,为什么?
q = ListNode(13)
q.next = head.next ---- (A)
head.next = q ---- (B)
(注意:这里由于出题人弄不清楚头结点与虚拟头结点的区别,所以取了个head这样**的名字,考生自己要清楚,别被带到沟里去了)
[61. 旋转链表]
https://leetcode-cn.com/problems/rotate-list/
8.叙述栈顶指针, (虚拟)队头指针,队尾指针的概念。
注意:为保证队列元素操作的一致性,类似于虚拟头指针的概念,建立虚拟队头指针,指向队首元素的前一个元素
9.“秋江楚雁宿沙洲,雁宿沙洲浅水流。流水浅洲沙宿雁,洲沙宿雁楚江秋。”请使用栈的基本操作来判断一个单词是否为回文单词。(只允许使用一个栈)
[剑指 Offer II 018. 有效的回文]
https://leetcode-cn.com/problems/XltzEq/
[234. 回文链表]
https://leetcode-cn.com/problems/palindrome-linked-list/
10. 简述如何检验括号有效性。
[20. 有效的括号]
https://leetcode-cn.com/problems/valid-parentheses/
11. 在玩游戏的时候,一般会标记重生点,角色快死了可以回到重生点复活继续游戏,请从数据结构角度简单分析其基本原理。
12.!!!如何解决队列假溢出问题?
13.!!!如何在循环队列中区分队空与队满?
https://leetcode-cn.com/problems/design-circular-queue/
-
请分别使用循环顺序队列的基本操作和递归来计算某个月的斐波那契的兔子总数。两种做法在时间复杂度与空间复杂度上有什么不同?这样的做法在n>=47时应当注意什么?
[剑指 Offer 10- I. 斐波那契数列]
https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/comments/
[斐波那契数列两种算法的时间复杂度]
https://www.cnblogs.com/abyss1114/p/7272657.html
15.如何用递归解决汉诺塔问题?如何解释程序的运行过程?
[面试题 08.06. 汉诺塔问题]
https://leetcode-cn.com/problems/hanota-lcci/ -
如何用栈实现队列,又如何用队列实现栈(角色互换法)?基于此,请说说你是如何认识栈与队列的时间本质的?
-
!!!简单字符串匹配算法的劣势体现在哪儿?如何改进?改进后的kmp算法的next数组是如何求的?求出next数组后又怎么办?
18.在用数组存储矩阵的时候,如何避免元素重复存储(对称矩阵->三角矩阵),如何处理零元素大量规律存在(三角矩阵),以及大量不规律存在(稀疏矩阵(三元组表法,十字链表法))的问题?
19.应当如何定义叶子结点?由此看出树与图具有怎样的关系?
(结点的度,叶子结点,分支结点,树的度)
20.如何用非技术人员也能听懂的语言描述树的结构?(联系家系图)
(孩子结点,双亲结点,兄弟结点,祖先结点,子孙结点,结点的层次(类似辈分),堂兄弟结点(有病吧),树的深度,有序树,无序树)
21.如何用树的性质进行数学运算?(难/麻烦)
(1)树的结点数目=所有结点的度的总和+1
(2)度为k的树第i层最多有k的(i-1)次方个结点
(3)深度为h的k叉树最多有(k的h次方-1)/k-1
(4)具有n个结点的k叉树的最小深度为logk[n(k-1)+1]取整
22.请先回答问题先序遍历之先是什么先?先序遍历,后序遍历,层次遍历与前序遍历,中序遍历,后序遍历,层次遍历的关系是什么?再写出下面这个树的先序遍历,后序遍历,层次遍历的节点顺序。(不要背,递归看即可)
23.试证明:对任何非空二叉树 T,若其叶结点个数为 n0,度数为 2 的结点个数为 n2,则n0 = n2 + 1
24.试比较二叉树的顺序存储与链式存储,说明其在不同应用场景下的优缺点。
25.(必考&&重要1)
26.简述树与二叉树的区别
恋拽FHB 2017-04-24 23:22树可以为空,叫空树(严蔚敏《数据结构(C语言版)》第118页明确定义:树是n(n>=0)个结点的有限集)。他们之间的差别主要在于实现方式的不同。二叉树是二叉链表(有左右子树的指针),树通常是兄弟孩子链表(有孩子指针,兄弟指针,两个指针)。二叉树区分左右,非有序树不区分左右。
27.满二叉树与完全二叉树的区别是什么?(满二叉树是完全二叉树的一种特例)
28.
标签:信管,结点,遍历,自测题,二叉树,https,数据结构,com,leetcode 来源: https://www.cnblogs.com/Guo-Guo-best/p/15646272.html