数据结构的抽象数据类型描述

  • 数组: 有序的元素序列,将有限个元素按顺序排列的集合。
  • 链表:有序的元素序列,但不同于数组,链表在内存中不是连续存放的,通过指针指向下一个元素。
  • :一种操作受限制的线性表,其限制是仅能在一端进行插入和删除。新添加的元素会被保存到栈顶,称为入栈,删除的时候移除栈顶的第一个元素,称为出栈。后进先出。
  • 队列: 一种操作受限制的线性表,其限制是仅能在前端进行删除,后端进行插入。先进先出。
  • 二分搜索树: 一种具有层次结构的有限集合。每个结点都有左右结点,比结点大的在结点右边,比结点小的在结点左边。这样的特点使得查找效率很高效。
  • 集合:由一堆无序的、 不重复的元素组成的集合。
  • 映射:通过<键,值>方式存储数据,每个元素都有<键,值>,通过键访问元素。
  • :特殊的树形结构。最大值在根,每个父节点都比子节点大,称为最大堆;根是最小值,每个父节点都比子节点小,称为最小堆。
  • 优先队列:一种特殊的队列,其特殊之处是根据优先级出队,而不是先进先出。
  • 前缀树:n叉树结构,通过字符寻找下一个节点。
  • 并查集:集合与集合之间的运算。比如两个元素是否同一个集合;合并集合;
  • 哈希表:类似映射。不同之处是:将key通过哈希函数转成数字索引,再去访问数组的元素。
  • :由n(n ≥ 0)个结点 组成的集合。每个结点都可以指向其他结点。

javascript 描述
java 描述
动画描述


数组

类型名称: 数组 。
数据对象集: n(n ≥ 0)个元素构成的有序序列 。
操作集: 整数i表示位置,ElementType 为元素类型。

  1. 查找元素:int find( ElementType e)
  2. 插入元素:void insert(int i, ElementType e)
  3. 删除元素:ElementType remove(int i)
  4. 更新元素:void set(int i, ElementType e)
  5. 访问元素:ElementType get(int i)
  6. 返回长度:int length()
    数组

链表

类型名称: 链表。
数据对象集: n(n ≥ 0)个结点构成的有限集合,每个结点带有指向下一个元素的指针
操作集: 整数 i 表示位置,ElementType 为元素类型。

  1. 添加元素:void insert(int i, ElementType e)
  2. 删除元素:ElementType remove(int i)
  3. 查找元素:int find(ElementType e)
  4. 更新元素:void set(int i, ElementType e)
  5. 访问元素:ElementType get(int i)
  6. 链表元素数量: int length()

链表


类型名称: 栈。
数据对象集: n(n ≥ 0)个构成的有序序列元素。
操作集: ElementType 为元素类型。

  1. 入栈:void push(ElementType e)
  2. 出栈:ElementType pop()
  3. 栈顶元素:ElementType peek()
  4. 元素数量:int length()
    栈

队列

类型名称: 队列。
数据对象集: n(n ≥ 0)个构成的有序序列元素。
操作集: ElementType 为元素类型。

  1. 进队:enqueue(ElementType e)
  2. 出队:ElementType dequeue()
  3. 队首:ElementType front()
  4. 是否空:boolean isEmpty()
  5. 元素数量:int length()
    队列



集合

类型名称: 集合。
数据对象集: n(n ≥ 0)个元素构成的有限集合。
操作集: ElementType 为元素类型。

  1. 添加:void add(ElementType e)
  2. 删除:ElementType remove(ElementType e)
  3. 是否包含某个元素:boolean contains(ElementType e)
  4. 是否为空:boolean isEmpty()
  5. 长度:int length()
    集合



映射

类型名称: 映射。
数据对象集: 每个元素都有<键,值>,通过键访问元素
操作集: KeyType 为键类型,ValueType 为值类型。

  1. 添加:void add(KeyTpe key, ValueType value)
  2. 访问:ValueType get(KeyType key)
  3. 修改:void set(KeyTpe key, ValueType value)
  4. 删除:ValueType remove(KeyType key)
  5. 元素数量:int length()
    映射



二分搜索树

类型名称: 二分搜索树。
数据对象集: n(n ≥ 0)个结点构成的有限集合,每个结点都有左右指针指向它的子节点
操作集: ElementType 为元素类型。

  1. 插入:void insert(ElementType e)
  2. 删除:remove(ElementType e)
  3. 查找:ElementType find(ElementType e)
  4. 前序遍历:void preOrder()
  5. 中序遍历:void preOrder()
  6. 后序遍历:void preOrder()
  7. 层序遍历:void levelOrder()
  8. 结点数量:int size()
    二分搜索树



前缀树

类型名称: 前缀树。
数据对象集: 每个节点都有一个指针指向下一个,通过字符寻找下一个节点。
操作集: 默认为处理字母字符。

  1. 添加单词:void add(String word)
  2. 查询是否有某个单词:boolean contains(String word)
  3. 是否包含某个前缀:boolean isPrefix(String prefix)
  4. 单词数量:int size()
    前缀树



类型名称: 最大堆。
数据对象集: n(n ≥ 0)个结点构成的有限集合,通过索引关系访问父节点以及左右结点
操作集: ElementType 为元素类型。

  1. 添加:void add(ElementType e)
  2. 删除堆顶元素:ElementType remove(ElementType e)
  3. 获取堆顶元素:ElementType get()
  4. 元素数量:int lenght()
    堆



优先队列

类型名称: 优先队列。
数据对象集: n(n ≥ 0)个构成的有序序列元素
操作集: ElementType 为元素类型。

  1. 进队:enqueue(ElementType e)
  2. 出队:ElementType dequeue()
  3. 队首:ElementType front()
  4. 是否空:boolean isEmpty()
  5. 元素数量:int length()
    在这里插入图片描述



并查集

类型名称: 并查集。
数据对象集: 元素 或 集合。
操作集: ElementType 为元素类型 。

  1. 是否同一个集合:boolean isConnected(ElementType p, ElementType q)
  2. 合并集合:void unionElement(ElementType p, ElementType q)
    并查集



哈希表

类型名称: 哈希表。
数据对象集: 有<键,值>的元素。
操作集: KeyType 为键类型,ValueType 为值类型。

  1. 添加:void add(KeyTpe key, ValueType value)
  2. 访问:ValueType get(KeyType key)
  3. 修改:void set(KeyTpe key, ValueType value)
  4. 删除:ValueType remove(KeyType key)
  5. 哈希函数:int hashCode(key)
  6. 元素数量:int size()
    哈希表



类型名称: 图。
数据对象集: 结点。每个节点都可以指向其他结点。
操作集: ElementType 为元素类型 。

  1. 是否包含某个点:boolean contains(ElementType v)
  2. v1点到v2点是否连通:boolean isConnected(ElementType v1, ElementEtype v1)
  3. 添加点:void addVertex(ElementType v)
  4. 添加线:void addEdge(ElmentType v1, ElmentType v2)
  5. 删除点:ElementType removeVertex(v)
  6. 删除线:void removeEdge(ElementType v1, ElementType v2)
  7. 获取点的线:Array getEdge(v)
    图
posted @ 2019-12-19 16:36  魂之王  阅读(1729)  评论(0编辑  收藏  举报