Ουρά (δομή δεδομένων): Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Γραμμή 191:
def peek(self):
return self.__queue[0]
</source>
 
== Παράδειγμα ουράς σε κλάση C# ==
<source lang="csharp">
using System;
using System.Collections.Generic;
 
namespace QueueExample
{
public sealed class Queue<T> : IEnumerable<T>
{
private class Node
{
public Node Previous;
public T Value;
}
 
Node first;
Node last;
int count = 0;
 
public int Count { get { return count; } }
 
public void Enqueue(T item)
{
Node node = new Node { Value = item };
if (first == null)
last = node;
else
first.Previous = node;
 
first = node;
count++;
}
 
public T Dequeue()
{
if (count == 0)
throw new InvalidOperationException("Queue is empty.");
 
Node node = last;
Node previous = last.Previous;
last = previous;
if (previous == null)
first = null;
 
count--;
return node.Value;
}
 
#region IEnumerable<T> Members
public IEnumerator<T> GetEnumerator()
{
Node current = last;
for (int i = 0; i < count; i++)
{
current = current.Previous;
yield return current.Value;
}
}
 
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
</source>
 
== Παράδειγμα ουράς σε Java ==
<source lang="Java">
public class Queue<T> {
private Node<T> nodeHead = null;
private Node<T> nodeEnd = null;
private long size = 0L;
 
public void enqueue(T x) {
Node<T> newNode = new Node<T>(x, null);
if (nodeHead == null) {
nodeHead = newNode;
} else {
nodeEnd.next = newNode;
}
nodeEnd = newNode;
size++;
}
 
public T dequeue() throws IllegalStateException {
if (nodeHead == null) {
throw new IllegalStateException();
}
T head = nodeHead.element;
nodeHead = nodeHead.next;
size--;
 
return head;
}
 
public long size() {
return size;
}
 
private class Node<T> {
Node<T> next;
T element;
 
public Node(T element, Node<T> next) {
this.element = element;
this.next = next;
}
}
}
</source>
 
== Παράδειγμα ουράς σε Javascript ==
 
<source lang="javascript">
function Queue(){
this.data = [];
this.head = 0;
this.count = 0;
this.size = function(){
return this.count < 0 ? 0 : this.count;
}
this.queue = function(obj){
this.data[this.count++] = obj;
}
this.dequeue = function(){
//Amortizes the shrink frequency of the queue
if(--this.count < this.data.length*0.9){
this.data = this.data.slice(this.head);
this.head = 0;
}
return this.data[this.head++];
}
this.peek = function(){
return this.data[this.head];
}
this.isEmpty = function(){
return this.count <= 0;
}
}
</source>