计算机基础知识(考研408)——数据结构

计算机基础知识(考研408):
计算机组成原理: https://blog.csdn.net/qq_1532145264/article/details/129696532
操作系统: https://blog.csdn.net/qq_1532145264/article/details/129696582
数据结构: https://blog.csdn.net/qq_1532145264/article/details/129696596
计算机网络 https://blog.csdn.net/qq_1532145264/article/details/129696607

数据结构可视化网站:Data Structure Visualizations:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

1、绪论

1.1、数据结构三要素

  • 逻辑结构:
    • 线性结构(数组、栈、队列)
    • 非线性结构(集合、树形、图状)
  • 存储结构(也称为物理结构):
    • 顺序存储
    • 链式存储
    • 索引存储
    • 散列存储(也称为哈希存储)
  • 数据运算

1.2、算法效率的度量

算法效率的度量是通过时间复杂度空间复杂度来描述的。
复杂度对比:
在这里插入图片描述

1.3、数据基本操作

  增、删、改、查

添加数据要考虑 “判满”,删除数据要进行 “判空”


2、线性表

2.1、顺序表和链表的比较

  • 顺序表既支持顺序查找,也支持随机查找;链表仅支持顺序查找。
  • 在查找数据方面,顺序表的查找效率高。
  • 在插入和删除上,链表更加方便。
  • 顺序存储在静态存储分配情形下,一旦存储空间装满就不能扩充,若再加入新元素,则会出现内存溢出,因此需要预先分配足够大的存储空间。预先分配过大,可能会导致顺序表后部大量闲置;预先分配过小,又会造成溢出。动态存储分配虽然存储空间可以扩充,但需要移动大量元素,导致操作效率降低,而且若内存中没有更大块的连续存储空间,则会导致分配失败。链式存储的结点空间只在需要时申请分配,只要内存有空间就可以分配,操作灵活、高效。

3、栈、队列和数组

3.1、栈与队列

栈(Stack)是只允许在一端进行插入或删除操作的线性表。(特性:先进后出)
队列(Queue)是只允许在一端进行插入,在另一端删除的线性表。(特性:先进先出)


4、串

4、串的模式匹配

KMP算法


5、树与二叉树

5.1、基本概念

在这里插入图片描述


6、图

6.1、图的遍历

  • 广度优先遍历(BFS)
  • 深度优先遍历(DFS)

7、查找

7.1、常见的查找算法

  • 顺序查找
  • 折半查找
  • 分块查找

7.2、红黑树的特点

  • 每个结点或是红色,或是黑色的。
  • 根结点是黑色的。
  • 叶结点(虚构的外部结点、NULL结点)都是黑色的。
  • 不存在两个相邻的红结点(即红结点的父结点和孩子结点均是黑色的)。
  • 对每个结点,从该结点到任一叶结点的简单路径上,所含黑结点的数量相同。

7.3、B 树与 B+ 树区别

在这里插入图片描述


8、排序

8.1、各排序算法对比

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值