美文网首页
数据结构(2)-栈和队列和Hash表

数据结构(2)-栈和队列和Hash表

作者: tianyl | 来源:发表于2019-02-20 23:14 被阅读0次

栈和队列

限定仅在表尾进行的插入和删除操作
栈有顺序存储结构和链式存储结构

队列

队列是只允许在一段进行插入操作,另一端进行删除操作,插入的一段称为队尾,删除的一端称为对头
队列的顺序存储结构
缺点:出队复杂度高O(N)
容易假溢出

队列的链式存储结构,其实就是线性表的单链表,但是它是尾进头出而已。

队列的变形

双端队列Deque,例如:LinkedList/ ArrayDeque/ LinkedBlockingDeque(阻塞的双向队列)
优先级队列,例如,MessageQueue

hash表

hash表的特点

对于顺序表的特点(寻址容易,插入和删除困难)和链表的特点(寻址困难,插入和删除容易)进行综合,出现了一种寻址容易,插入删除也容易的数据结构hash表。

概念

哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度

关键码值(Key value)也可以当成是key的hash值
这个映射函数叫做散列函数
存放记录的数组叫做散列表

散列函数和散列表

  • 这里的对应关系f称为散列函数,又称为(Hash 函数)
  • 采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或hash 表

hash表的优缺点

  • 优点:
    • 查找,插入,删除只需要接近常量的时间O(1),实际上就是几条机器指令。哈希表在速度和易用性方面是无与伦比的。
  • 缺点:
    • 基于数组的,数组创建后难于拓展,当hash表被基本填满后,性能下降非常严重,所以要求程序员预先清楚表中存储多少数据。

数据结构导读目录

相关文章

  • 数据结构导读目录

    数据结构(1)-常见数据结构数据结构(2)-栈和队列和Hash表数据结构(3)-树和二叉树的遍历数据结构(4)-二...

  • 排序算法

    什么是算法 书籍推荐 《数据结构与算法分析》 表、栈和队列 树 散列(hash) 优先队列(堆) 排序 定义 问题...

  • 数据结构(2)-栈和队列和Hash表

    栈和队列 栈 限定仅在表尾进行的插入和删除操作栈有顺序存储结构和链式存储结构 队列 队列是只允许在一段进行插入操作...

  • 树、二叉树

        前面几节分析了表的数据结构以及算法,包括顺序表、链表、hash表以及栈和队列。后面的几节我们讲开始分析树。...

  • 栈和队列—什么是栈

    栈和队列是两种重要的数据结构 从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子...

  • 栈和队列—什么是队列

    栈和队列是两种重要的数据结构 从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子...

  • 数据结构

    数据结构 队列&栈&链表&集合&hash表&树&图 队列 先进先出 栈 先进后出 链表 单向链表 双向链表 循环链...

  • 第四章栈与队列

    知识大纲 栈和队列的数据结构 相同点 栈和队列都是对删除和插入做了限制的线性表 栈和队列的都是建立在线性表的...

  • 数据结构笔记

    什么是数据结构跟语言无关,跟实现无关 举例: 队列、栈、Hash(表)、树 队列(queue):先进先出(FIFO...

  • Android 数据结构与特点

    Android数据结构有数组,栈,队列,链表,树,图,堆,散列表(hash表)。 数组图2 数组具有下标,下标从0...

网友评论

      本文标题:数据结构(2)-栈和队列和Hash表

      本文链接:https://www.haomeiwen.com/subject/voxlyqtx.html