数据结构与算法知识点总结

在这里插入图片描述


编者几乎会每天抽一点点时间,慢慢更新这个文档,也欢迎大家留言补充。

在这里插入图片描述



满二叉树的结点

  • 某层的:第K层—— 2 k − 1 2^{k-1} 2k1
  • 总共的:深度为m—— 2 m 2^{m} 2m
  • 满二叉树中,最后一层的结点个数就是叶子结点的个数

在这里插入图片描述

算法空间复杂度 / 有穷性

  • 算法的空间复杂度:算法在运行过程中需辅助存储空间的大小。
  • 算法的有穷性:一个算法必须在执行有限的步骤以后结束。

在这里插入图片描述

线性结构

线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。

  • 栈又称后进先出表
  • 队列又称先进先出表
    在这里插入图片描述

在这里插入图片描述

中序遍历

  • “左根右”

首先遍历左子树,然后访问根结点,最后遍历右子树;
并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。

  • 例题:
    在这里插入图片描述
    答案是:DBEAFC

在这里插入图片描述

后序遍历

  • “左右根”

首先遍历左子树,然后访问右子树,最后遍历根结点;
并且遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。

  • 例题:
    在这里插入图片描述
    答案是:DEBFCA

在这里插入图片描述

算法基本特征

1、可行性
2、确定性
3、有穷性
4、拥有足够的情报
在这里插入图片描述

在这里插入图片描述

希尔排序法(插入类排序)

  • 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以希尔排序法属于插入类排序

在这里插入图片描述

算法是啥

  • 是解题方案的准确而完整的描述

在这里插入图片描述

几个排序方法

  • 快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;
  • 插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;
  • 选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;
  • 归并排序是将两个或两个以上的有序表组合成一个新的有序表。
  • 以上几个排序方法中,要求内存量最大的是归并排序

在这里插入图片描述

顺序存储结构 / 链式存储结构

  • 顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(i-1)L计算得到,从而实现了随机存取
  • 链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。

在这里插入图片描述

在单链表中,增加头结点的目的

头结点不仅标识表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现

在这里插入图片描述

算法分析的目的

  • 算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。
  • 分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。简单的说就是分析算法效率以求改进

在这里插入图片描述

强连通图

在有向图中,若任意两个顶点都连通,则称该图是强连通图,这样的有向图的形状是环状,因而至少应有n条边。

在这里插入图片描述

线性表——栈

  • 线性表可以顺序存储,也可以链式存储,而栈是一种线性表,也可以采用链式存储结构。
  • 栈是后进先出表,当然栈是有记忆作用的。

在这里插入图片描述

基本排序算法的比较次数

假设线性表的长度为n,则在最坏情况下:

  • 冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2
  • 快速排序法的最坏情况比较次数也是n(n-1)/2

在这里插入图片描述

逻辑结构——存储结构——效率

  • 一种数据的逻辑结构根据需要可以表示成多种存储结构。
  • 常用的存储结构有顺序、链接、索引等存储结构。
  • 采用不同的存储结构,其数据处理的效率是不同的。

所以一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。

在这里插入图片描述

线性结构 / 非线性结构

  • 根据各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。

  • 如果一个非空的数据结构满足下列两个条件,则称该数据结构为线性结构,又称线性表.

    • 有且只有一个根结点;
    • 每个结点最多有一个前件,也最多有一个后件。
  • 线性表、栈与队列、线性链表都是线性结构,而二又树是非线性结构

在这里插入图片描述

在这里插入图片描述

看完点个赞呗,速评一下更有动力哦
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~本特利~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值