数据结构笔记

1.线性表

线性表主要有两种表示方法一种是顺序表示,一种是链式表示。

  顺序表示 链式表示
定义

一组地址连续的存储单元依次存储线性表的数据元素特征(逻辑相邻,地址相邻)

一组任意的存储单元存储线性表的数据元素(地址可以连续,也可以不连续(逻辑相邻,地址不一定相邻)
实现 通过地址来实现逻辑相邻 通过在对象中保存后继数据的存储位置实现逻辑相邻
优点 查找方便,地址可直接计算得出,时间复杂度O(1)

删除和插入简单

缺点 删除和插入较复杂,需要操作当前元素之后所有元素 查询复杂,需要通过遍历链表来查找,时间复杂度O(n)
表现形式  

单链表:只含有一个指针域(查找只能从前往后遍历)

循环链表:与单链表相比,链表最后节点指向头节点

双向链表:有两个指针域,一个指向前驱,一个指向后继

2.数组

数组可以理解为一种特殊的线性表。数组一旦被定义,他的维度和维界就不再改变。数组除了初始化和销毁以外,只具有存储操作和修改操作。

3.栈与队列

  队列
定义 只能在表尾进行插入和删除的线性表(后进先出) 只能在表的一端进行插入,另一端进行删除的线性表(先进先出)
应用 数制转换/括号匹配的检验/行编辑程序/迷宫求解/表达式求解/递归的实现 操作系统的作业排队

4.串

串是由零个或者多个字符组成的有限序列。

串的定长顺序存储表示:用一组地址连续的存储单元存储串值的字符序列。

串的堆分配存储表示:仍以一组地址连续的存储单元存放串值字符序列,但存储空间是在程序执行过程中动态分配而来。

串的块链存储表示:采用链表形式存储,链表的每个节点可以是一个或者多个连续的地址。

5.树

树基本术语:

  • 结点:数据元素及指向起子树的分支
  • 结点的度:结点拥有的子树数
  • 叶子:度为零的结点
  • 分支结点:度不为零的结点
  • 树的度:树内各结点的度的最大值

二叉树:每个节点最多只有两个子树,并且左右子树不能颠倒。

特点:

1.在二叉树的第i层上最多有2的i-1次方个结点

2.深度为k的二叉树最多有2的k次方-1个结点

3.叶子数=度为2的结点数+1


 

你可能感兴趣的:(数据结构笔记)