随笔 数据结构

数据结构

线性结构

数组

  • 数据元素紧密的排列到一起,
  • 在物理上还是逻辑上都是--连续不中断
  • 有固定的长度的
  • 数组的头地址和数组的长度以及数组的元素大小
  • int a[] =new int[100]; 00000000

  • 先进后出
  • 入栈的顺序是abcde 不可能出栈的顺序是什么
  • 双栈实现一个队列
  • 实现一元多项式的运算

队列

  • 先进先出

约瑟夫环

  • 隔n出1
  • 最后活下来的才是王者

链表

  • 逻辑上也是连续的
  • 物理上可以不连续
  • 单链表
    • 仅有一个向后的指针
    • 还有数据域
    • 有序的单链表
      • 更新操作=先删除后插入

  • 双链表
    • 还有一个向前的指针

  • 数据长度不固定

树的概念

  • 根节点是没有父节点
  • 除了根节点的其他所有节点有且仅有一个父节点

二叉树的遍历

  • 深度优先
    • 前序(根)遍历
    • 中序(根)遍历
    • 后序(根)遍历
  • 广度优先
    • 层次变量

搜索二叉树

  • 左侧比根小
  • 右侧比根大
  • 所以数据是有序的

平衡二叉搜索树/平衡二叉树

  • 任意一个节点的左右子树的高度差不大于1
  • 平衡二叉树的平衡
  • O(logn) 有序的数组做二分查找

红黑树

完全二叉树

* 除了最后一层是满的
* 最后一层要从左往右依次填充数据
* 平衡的二叉树
* 无序

满二叉树

* 圆满
* 除了最后一层是叶子节点之外 无其他叶子节点
* 平衡的二叉树
* 无序

哈夫曼树

01 a 300

10 b 200

11 c 100

00 d 50

一定要有 对各个字出现的频次的统计 由高到低 做好排序

多叉树

B树

图的概念

  • 每个数据元素可以多个前驱节点(元素)和后续节点(元素)

有向图

  • 无权图
  • 有权图

无向图

  • 有权图
  • 无权图

邻接矩阵

邻接表存储

深度优先

广度优先

数据的存储结构

顺序存储

  • 用连续的内存单元来存储数据

链式存储

  • 使用若干地址分散的来存储数据
  • 用指针来记录前驱或后继元素的地址
  • 有单独一块来存储数据

数据结构的常见操作

  • 初始化
  • 判空
  • 统计元素个数
  • 判断是否包含某个元素
  • 按照某种顺序依次访问所有元素
  • 获得指定的元素值
  • 设置指定的元素值
  • 插入指定元素
  • 删除指定元素
  • 查找指定元素
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值