欢迎光临散文网 会员登陆 & 注册

数据结构总览(1)

2023-03-14 10:37 作者:软件界的搬运工-Hello君  | 我要投稿

数据结构

概念

  1. 数据

  2. 数据元素,数据项

  3. 数据对象

  4. 数据类型

    + 原子类型

    + 结构类型

    + 抽象类型

  5. 数据结构定义

    数据元素之间存在一个或者多个特定关系的元素集合

  6. 逻辑结构

    线性,线性表,栈,队列,数组

    非线性,树,图,集合

  7. 物理结构

    顺序,链表,索引,散列

  8. 算法

    五要素,有穷性,正确性,可行性,输入和输出

    时间复杂度:

    O(1)  O(logN) O(N)  O(NlogN) O(N^2) O(N^3) O(2^N) O(3^N) O(N!)  O(N^N)   

    空间复杂度 

     O(1) : 算法原地工作


线性表

  1. 顺序表

    顺序表的基本操作

    顺序表的操作,新增,删除,查找

  2. 链表

    单链表

    双链表

    循环链表

    链表的操作,新增,删除,查找,头插法,尾插法,头结点

  3. 静态链表

  4. 线性表的顺序表和链表对比

栈,队列,矩阵

  1. 栈的顺序存储

    栈的链式存储

    共享栈

    栈的基本操作push.,pop,empty

    栈卡特兰公式

  2. 队列

    队列的顺序存储

    队列的链表存储

    队列的的基本操作,新增,删除,pop,push

    双端队列

    输出和输入双端队列

  3. 栈和队列的应用

    括号匹配

    计算表达式(前缀表达式,后缀表达式)

    树的非递归遍历

    函数调用栈

    队列

    树的层序遍历

    打印机

    操作系统中的任务调用

  4. 多维数组,矩阵,稀疏矩阵

    多维数组的下标表示

    对称矩阵和矩阵的存储

    三角矩阵,上三角矩阵,下三家矩阵

    对三角矩阵

字符串

  1. 字符串,子串

  2. 子串的匹配

  3. 暴力匹配

  4. KMP算法

  5. next数组

  6. nextval数组

树的基本概念

根,父亲,双亲,孩子,祖父,子孙,兄弟,堂兄弟,叶子结点,非叶子结点

高度,层,深度

树的分支,树的度,有序树,非有序树

N个节点的最小高度 h = log m(n*(m+1) -1),m 为树点的度


二叉树

  1. 度为二的树

  2. 二叉树

  3. 完全二叉树,满二叉树

  4. 完全二叉树,满二叉树一些特性

  5. 排序树

  6. 平衡二叉树

树的遍历和线索化

树的遍历(递归和非递归算法)

  1. 树的前序遍历

  2. 树的后续遍历

  3. 树的中序遍历

树的线索化(利用度为0的节点和度为1的节点的左右子树为空,建立前驱和后驱线索)

  1. 树的前序线索

  2. 树的后续线索

  3. 树的中序线索


树和森林

树和森林的存储

  1. 双亲表示法

  2. 孩子表示法(链表法)

  3. 孩子兄弟表示法

树和森林的遍历

  1. 树的后序遍历  = 森林的中序遍历 = 二叉树的中序遍历

  2. 树的先序遍历  = 森林的先序遍历 = 二叉树的先序遍历

树的应用

  1. 哈夫曼树

  2. 带权路径长度

  3. 哈夫曼编码

  4. 并查集













数据结构总览(1)的评论 (共 条)

分享到微博请遵守国家法律