考研数据结构面试题
-
数据结构:数据结构是相互有关联的数据元素的集合。主要研究数据的逻辑结构,存储结构以及数据的运算。
-
数据的逻辑结构:反映数据元素之间的逻辑关系。包括线性结构和非线性结构
-
数据的存储结构:数据的逻辑结构在计算机存储空间中的存放形式成为数据的存储结构。常用的存储结构包括顺序、链接、索引等存储结构
-
栈是限定仅在表尾进行插入和删除操作的线性表
-
数组和链表的区别:
从逻辑结构来看:
-
数组必须限定数组的长度,不能适应数据的动态增减情况。当数据增加的时,可能超过原先定义的元素的个数;当数据减少时,造成内存浪费。数组可以根据下标直接存取
-
链表动态地进行存储分配,可以适应数据动态增减情况,且可以方便地进行插入、删除等操作。(数组中插入、删除操作非常复杂)
从内存存储来看:
-
(静态)数组从栈中分配空间,对于程序员方便快捷,但是自由度小
-
链表从堆中分配空间,自由度大,但是申请管理比较麻烦
-
什么是算法:是对特定问题求解步骤的一种描述
-
算法的时间复杂度:指算法执行过程中所需要的基本运算次数
-
算法的空间复杂度:指算法执行的过程中所需要的存储空间
-
算法分析的目的是:分析算法的效率以求改进
-
线性表的定义:线性表是n个元素构成的有限序列。除第一个元素之外,每个元素有且只有一个前驱;除最后一个元素以外,每个元素有且仅有一个后继
-
什么是栈?栈是一种只能在表的一端进行插入和删除运算的的线性表。通常称插入、删除的一端为栈顶(Top)
-
什么是队列?队列是只允许在一端删除,在另一端插入的线性表。允许删除的一端叫队头,允许插入的一端叫队尾。队列是先进先出的结构。
-
什么是线索二叉树?指向节点前驱和后继的指针,叫做线索。加上线索的二叉树称为线索二叉树
-
什么是哈夫曼树?在含有N个带权叶子结点的二叉树中,其中带权路径(WPL)最小的二叉树称为哈夫曼树
-
串是零个或多个字符组成的有限序列
-
在一个串中任意个连续字符组成的子序列称为该串的子川,包含子川的串称为主串
- 模式匹配:(在顺序串上子川的定位运算)是在主串中查找子串出现的位置