zoukankan      html  css  js  c++  java
  • 表、栈、队列

    表类似于数组,在内存中是连续存储的,但是插入和删除的开销非常大,通常是以线性时间执行。

    链表则可以避免表插入和删除的线性开销,他允许表不连续存储。

    栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶(top)。栈也叫做LIFO(先进后出)表。

    栈的基本操作时入栈push和出栈pop,入栈相当于时插入元素,出战则相当于时删除元素,去除栈顶的元素则使用top操作。

    在我的leetcode笔记中链表的反转很好的利用了链表的先进后出的性质 https://www.cnblogs.com/zhousong918/p/10211487.html 

    队列:像栈一样,队列(queue)也是表。然而,使用队列时插入在一端进行而删除在另一端惊醒。

    队列的基本操作时Enqueue(入队),他是在表的末端(也叫队尾(rear))插入一个元素,还有Dequeue(出队),他时删除(或返回)在表的开头(叫做对头(front))的元素。

    queue 的基本操作有:
    入队,如例:q.push(x); 将x 接到队列的末端。
    出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
    访问队首元素,如例:q.front(),即最早被压入队列的元素。
    访问队尾元素,如例:q.back(),即最后被压入队列的元素。
    判断队列空,如例:q.empty(),当队列空时,返回true。
    访问队列中的元素个数,如例:q.size()

  • 相关阅读:
    JS元素分组统计
    并发工具类
    【Spring-Cloud】mall eureka微服务模块建立
    【Spring-Cloud】mall父工程建立
    【MySQL】创建函数和存储过程,批量插入大数据
    【JAVA】http 状态
    【JAVA】如何写好代码
    【Docker】dockerfile,支持jdk8、 sshd、 python3.6
    【Hadoop】MapperReduce WordCount 代码示例
    【Hadoop】YARN 完全分布式配置
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10231401.html
Copyright © 2011-2022 走看看