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

  • 相关阅读:
    SNOI 2019 字符串
    1068: [SCOI2007]压缩
    POJ 1848 Tree 树形DP
    BZOJ bzoj1396 识别子串
    BZOJ 4503: 两个串
    BZOJ 2302: [HAOI2011]Problem c(数学+DP)
    BZOJ 3157: 国王奇遇记 (数学)
    CF_528D
    BZOJ 3000: Big Number (数学)
    新の开始
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10231401.html
Copyright © 2011-2022 走看看