“入队”和“出队”之间的区别

时间:2013-05-08 05:37:51

标签: queue programming-languages

有人可以解释一下主要的区别吗?我对任何语言的编程都没有清楚的知识。

6 个答案:

答案 0 :(得分:36)

C和C ++等编程语言中的一些基本数据结构是堆栈和队列。

堆栈数据结构遵循“先进先出”策略(FILO),其中第一个元素插入或“推入”堆栈是从堆栈中删除或“弹出”的最后一个元素。

类似地,队列数据结构遵循“先进先出”策略(如我们在柜台排队时的正常队列的情况),其中第一个元素被推入队列或“入队”当必须从队列中删除时,相同的元素是“Dequeued”..

这与堆栈中的push和pop非常相似,但是enqueue和dequeue这两个术语避免混淆使用中的数据结构是堆栈还是队列。

类编码器有一个简单的程序来演示入队和出队过程。你可以看看它作为参考。

http://classcoders.blogspot.in/2012/01/enque-and-deque-in-c.html

答案 1 :(得分:22)

EnqueueDequeue往往是对队列的操作,这是一种完全听起来像它的数据结构。

你将一端的物品排入队列并在另一端出列,就像排队等候最新泰勒斯威夫特音乐会门票的人一样(我本来打算说比利乔尔,但那会严重影响我)。

有各种各样的队列,比如双端队列,你可以在任何一端入队和出队但绝大多数都是更简单的形式:

           +---+---+---+
enqueue -> | 3 | 2 | 1 | -> dequeue
           +---+---+---+

该图显示了一个队列,您按顺序将数字1,2和3排入队列,但尚未将任何队列出列。

答案 2 :(得分:9)

这些是在描述“FIFO”队列时通常使用的术语,即“先进先出”。这就像一条线。你决定去看电影。买票很长,你决定进入队列买票,即“入队”。在某些时候,你在前线,你可以买票,然后离开线,即“Dequeue”。

答案 3 :(得分:1)

队列是某种双面数据结构。您可以在一侧添加新元素,并从另一侧删除元素(而不是只有一侧的堆栈)。入队意味着添加元素,出列以删除元素。请看一下here

答案 4 :(得分:1)

在我看来,这个过程中描述过程最糟糕的一个词,因为它与现实生活中或类似的任何事物无关。通常,单词" queue "非常糟糕,好像发音一样,听起来像英文字符" q" 。看到这里的低效率?

入队:将某些内容放入队列中;将一个元素添加到队列的尾部;

出队从队列中取出一些东西;从队列头部删除第一个可用元素

来源:https://www.thefreedictionary.com

答案 5 :(得分:0)

入队表示添加元素,出队删除元素。

var stackInput= []; // First stack
var stackOutput= []; // Second stack

// For enqueue, just push the item into the first stack
function enqueue(stackInput, item) {
  return stackInput.push(item);
}

function dequeue(stackInput, stackOutput) {
  // Reverse the stack such that the first element of the output stack is the
  // last element of the input stack. After that, pop the top of the output to
  // get the first element that was ever pushed into the input stack
  if (stackOutput.length <= 0) {
    while(stackInput.length > 0) {
      var elementToOutput = stackInput.pop();
      stackOutput.push(elementToOutput);
    }
  }

  return stackOutput.pop();
}