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

144 阅读2分钟
优秀JSON方法博客参考:https://blog.csdn.net/qq_27674439/article/details/90717791

数据结构的逻辑结构

  • 线性
  • 非线性
  1. 集合:同属于一个集合是数据元素之间的唯一关系
  2. 线性结构:一对一关系,仅有一个直接前驱和一个直接后继
  3. 树形结构:一对多关系,除了根节点以外仅有唯一的直接前驱
  4. 图形结构:多对多关系,多个直接前驱与直接后继
存储结构
  1. 顺序结构(一维数组)
  2. 链式结构(链表)
  3. 索引结构(索引表)
  4. 散列hash存储(构造散列函数)
算法和效率
  1. 算法:有穷性、确定性、可行性、输入输出
  2. 目标:正确性、可读性、健壮高效低存储量
  3. 效率:事先估算法和事后统计法
  4. 评价(数量级):时间复杂度和空间复杂度

线性表:

  1. 线性表--基本操作:创建、求长度、查找、插入、删除、显示
  2. 顺序存储--顺序表:元素的物理顺序与逻辑顺序一致
  • 特点:按照数据元素的序号随机存取
  • 节约存储空间
  • 缺点:插入和删除操作耗时。预先分配最大空间,存储空间浪费,表的容量难以扩充
链式存储
线性链表:
  • 单向链表:一个数据域与一个指针域
  • 循环链表:一个数据域和两个指针域
  • 双向链表:最后一个节点的指针指向头结点

栈 (后进先出-相当于出口只有一个)

运算:进栈、出栈、判栈空、判栈满、读取栈顶元素、显示栈元素

  • 顺序栈(顺序存储)
  • 链栈(链式存储)

队列(先进先出--类似于管道,双开口的)

运算:入队,出队,读队头,显示队列元素、判队空、判队满、求队列长度

顺序队列:假溢出
循环队列:解决假溢出c出管理、对CPU的分配管理、优先队列-权值优先、双端队列)

  • 顺序存储
  • 链接存储
  • 堆分存储

树和二叉树

结点、结点的度、数的度、叶子、分支结点、有序树、无序树 表示法:嵌套集合法、圆括号表示法、凹入法

二叉树(一种特殊的有序树)
  1. 性质一:一颗非空的二叉树的第i层上最多有2^(i-1)个结点
  2. 性质二:深度为h的二叉树中,最多具有2^(h-1)个结点