[个人笔记]数据结构

此为个人考研期间整理的数据结构的相关知识点

算法的定义和特征:算法是解决某特定问题的有穷操作的集合;算法的特性是:输入、输出、有穷性、可行性和确定性

平均查找长度:对关键字进行比较的次数

数据、数据元素和数据结构

  • 数据:用户输入到计算机被计算机处理的一些符号
  • 数据元素:数据的基本单位,用于描述一个对象
  • 数据结构:数据元素及其关系的组合
  • 抽象数据类型/ADT:某种数学模型及其所有操作
  • 存储结构:区别于逻辑结构,是数据结构在计算机中的表示

**各个数据结构见的比较:**横向上从创建、消除、增加、删除、修改五个维度;纵向上从时间和空间两个维度来比较和描述

哈夫曼树和普通二进制编码

  • 哈夫曼树:编码效率高,但是稳定性差(改变一个bit 后可能会出现重大差异)
  • 普通二进制编码:编码效率低,所需空间大,但是稳定性强

希尔排序:插入排序的一种改进版本

  1. 挑选一个间隔k(一般为数组长度的一半)
  2. 根据k间隔进行分组,之后对每个分组进行排序
  3. 将k缩小为1/2,重新进行分组排序
  4. 当k为1时,排序完成

▲往往希尔排序的时间复杂度不会到达O(n2

二维数组的存储

  • 行优先:先存第一行再存第二行…
  • 列优先:先存第一列再存第二列…

算法和程序

  • 算法是一种半程序化的语言
  • 程序是一种计算机语言,是一种程序化的语言

完全二叉树:度为0的节点个数记为n0,度为1的节点个数记为n1,度为2的节点个数记为n2;则n1=0或1;n0=n2+1

树,二叉树和森林的相互转化:核心思想即将(多叉)树转换为二叉树时,其左孩子代表该节点的第一个孩子,右孩子表示该节点的第一个孩子的兄弟节点,二叉树和森林的转换同理

头指针、头节点和开始节点

  • 头指针:指向链表第一个结点的指针,该第一个节点可以是头节点也可以是开始节点
  • 头节点:在链表的首个数据节点之前插入的一个节点,数据域内只存放表长和空表标志等信息,用于统一后续的编码操作
  • 开始节点:指链表中第一个开始存储数据的节点

B树的插入和删除操作

二叉线索树的前驱和后继节点的查找

二叉树的前序、中序和后序代码(使用栈而非递归)

中缀表达式和后缀表达式的转换

Dijkstra算法和Floyol算法

图的广度和深度遍历及其实现

二叉平衡树/ACL 的调整

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值