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()

  • 相关阅读:
    [Bzoj3262]陌上花开(CDQ分治&&树状数组||树套树)
    [洛谷P1501][国家集训队]Tree II(LCT)
    [bzoj2002][Hnoi2010]Bounce 弹飞绵羊(LCT)
    Codeforces Round #683 (Div. 2, by Meet IT) E
    Codeforces Round #683 (Div. 2, by Meet IT) C
    set使用
    Educational Codeforces Round 98 (Rated for Div. 2) D
    Educational Codeforces Round 98 (Rated for Div. 2) B
    arc102a
    树状数组知识点整理二(待)
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10231401.html
Copyright © 2011-2022 走看看