<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FCollections%2FYour_Queue</id>
		<title>Java Tutorial/Collections/Your Queue - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FCollections%2FYour_Queue"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Collections/Your_Queue&amp;action=history"/>
		<updated>2026-04-11T13:21:11Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Collections/Your_Queue&amp;diff=4710&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Collections/Your_Queue&amp;diff=4710&amp;oldid=prev"/>
				<updated>2010-06-01T05:04:50Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:04, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Collections/Your_Queue&amp;diff=4709&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Collections/Your_Queue&amp;diff=4709&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  A Queue Implemented by a Linked List ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Link {&lt;br /&gt;
  public int iData;&lt;br /&gt;
  public Link next;&lt;br /&gt;
  public Link(int id) {&lt;br /&gt;
    iData = id;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return &amp;quot;{&amp;quot; + iData + &amp;quot;} &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class LinkList {&lt;br /&gt;
  private Link first;&lt;br /&gt;
  public LinkList() {&lt;br /&gt;
    first = null;&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return (first == null);&lt;br /&gt;
  }&lt;br /&gt;
  public void insertFirst(int dd) {&lt;br /&gt;
    Link newLink = new Link(dd);&lt;br /&gt;
    newLink.next = first;&lt;br /&gt;
    first = newLink;&lt;br /&gt;
  }&lt;br /&gt;
  public int deleteFirst() {&lt;br /&gt;
    Link temp = first;&lt;br /&gt;
    first = first.next;&lt;br /&gt;
    return temp.iData;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    String str = &amp;quot;&amp;quot;;&lt;br /&gt;
    Link current = first;&lt;br /&gt;
    while (current != null) {&lt;br /&gt;
      str += current.toString();&lt;br /&gt;
      current = current.next;&lt;br /&gt;
    }&lt;br /&gt;
    return str;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class FirstLastList {&lt;br /&gt;
  private Link first;&lt;br /&gt;
  private Link last;&lt;br /&gt;
  public FirstLastList() {&lt;br /&gt;
    first = null;&lt;br /&gt;
    last = null;&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return first == null;&lt;br /&gt;
  }&lt;br /&gt;
  public void insertFirst(int dd) {&lt;br /&gt;
    Link newLink = new Link(dd);&lt;br /&gt;
    if (isEmpty())&lt;br /&gt;
      last = newLink;&lt;br /&gt;
    newLink.next = first;&lt;br /&gt;
    first = newLink;&lt;br /&gt;
  }&lt;br /&gt;
  public void insertLast(int dd) {&lt;br /&gt;
    Link newLink = new Link(dd);&lt;br /&gt;
    if (isEmpty())&lt;br /&gt;
      first = newLink;&lt;br /&gt;
    else&lt;br /&gt;
      last.next = newLink;&lt;br /&gt;
    last = newLink;&lt;br /&gt;
  }&lt;br /&gt;
  public int deleteFirst() {&lt;br /&gt;
    int temp = first.iData;&lt;br /&gt;
    if (first.next == null)&lt;br /&gt;
      last = null;&lt;br /&gt;
    first = first.next;&lt;br /&gt;
    return temp;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    String str = &amp;quot;&amp;quot;;&lt;br /&gt;
    Link current = first;&lt;br /&gt;
    while (current != null) {&lt;br /&gt;
      str += current.toString();&lt;br /&gt;
      current = current.next;&lt;br /&gt;
    }&lt;br /&gt;
    return str;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class LinkQueue {&lt;br /&gt;
  private FirstLastList theList;&lt;br /&gt;
  public LinkQueue() {&lt;br /&gt;
    theList = new FirstLastList();&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return theList.isEmpty();&lt;br /&gt;
  }&lt;br /&gt;
  public void insert(int j) {&lt;br /&gt;
    theList.insertLast(j);&lt;br /&gt;
  }&lt;br /&gt;
  public double remove() {&lt;br /&gt;
    return theList.deleteFirst();&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return theList.toString();&lt;br /&gt;
  }&lt;br /&gt;
} &lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    LinkQueue theQueue = new LinkQueue();&lt;br /&gt;
    theQueue.insert(20);&lt;br /&gt;
    theQueue.insert(40);&lt;br /&gt;
    System.out.println(theQueue);&lt;br /&gt;
    theQueue.insert(60);&lt;br /&gt;
    theQueue.insert(80);&lt;br /&gt;
    System.out.println(theQueue);&lt;br /&gt;
    theQueue.remove();&lt;br /&gt;
    theQueue.remove();&lt;br /&gt;
    System.out.println(theQueue);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;{20} {40} &lt;br /&gt;
{20} {40} {60} {80} &lt;br /&gt;
{60} {80}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Priority Queues ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In a priority queue, items are ordered by key value, so that the item with the lowest &lt;br /&gt;
key (or in some implementations the highest key) is always at the front. &lt;br /&gt;
Items are inserted in the proper position to maintain the order.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class PriorityQueue {&lt;br /&gt;
  private int maxSize;&lt;br /&gt;
  private double[] queArray;&lt;br /&gt;
  private int nItems;&lt;br /&gt;
  public PriorityQueue(int s) {&lt;br /&gt;
    maxSize = s;&lt;br /&gt;
    queArray = new double[maxSize];&lt;br /&gt;
    nItems = 0;&lt;br /&gt;
  }&lt;br /&gt;
  public void insert(double item) {&lt;br /&gt;
    int j;&lt;br /&gt;
    if (nItems == 0) {&lt;br /&gt;
      queArray[nItems++] = item;&lt;br /&gt;
    } else {&lt;br /&gt;
      for (j = nItems - 1; j &amp;gt;= 0; j--)&lt;br /&gt;
      {&lt;br /&gt;
        if (item &amp;gt; queArray[j])&lt;br /&gt;
          queArray[j + 1] = queArray[j];&lt;br /&gt;
        else&lt;br /&gt;
          break;&lt;br /&gt;
      }&lt;br /&gt;
      queArray[j + 1] = item;&lt;br /&gt;
      nItems++;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public double remove() {&lt;br /&gt;
    return queArray[--nItems];&lt;br /&gt;
  }&lt;br /&gt;
  public double peekMin() {&lt;br /&gt;
    return queArray[nItems - 1];&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return (nItems == 0);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isFull() {&lt;br /&gt;
    return (nItems == maxSize);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    PriorityQueue thePQ = new PriorityQueue(5);&lt;br /&gt;
    thePQ.insert(30);&lt;br /&gt;
    thePQ.insert(50);&lt;br /&gt;
    thePQ.insert(10);&lt;br /&gt;
    thePQ.insert(40);&lt;br /&gt;
    thePQ.insert(20);&lt;br /&gt;
    while (!thePQ.isEmpty()) {&lt;br /&gt;
      double item = thePQ.remove();&lt;br /&gt;
      System.out.print(item + &amp;quot; &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;10.0 20.0 30.0 40.0 50.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Queue: The first item inserted is the first to be removed (FIFO) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Queue {&lt;br /&gt;
  private int maxSize;&lt;br /&gt;
  private int[] queArray;&lt;br /&gt;
  private int front;&lt;br /&gt;
  private int rear;&lt;br /&gt;
  private int nItems;&lt;br /&gt;
  public Queue(int s) {&lt;br /&gt;
    maxSize = s;&lt;br /&gt;
    queArray = new int[maxSize];&lt;br /&gt;
    front = 0;&lt;br /&gt;
    rear = -1;&lt;br /&gt;
    nItems = 0;&lt;br /&gt;
  }&lt;br /&gt;
  public void insert(int j) {&lt;br /&gt;
    if (rear == maxSize - 1)&lt;br /&gt;
      rear = -1;&lt;br /&gt;
    queArray[++rear] = j;&lt;br /&gt;
    nItems++;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public int remove() {&lt;br /&gt;
    int temp = queArray[front++];&lt;br /&gt;
    if (front == maxSize)&lt;br /&gt;
      front = 0;&lt;br /&gt;
    nItems--;&lt;br /&gt;
    return temp;&lt;br /&gt;
  }&lt;br /&gt;
  public int peekFront() {&lt;br /&gt;
    return queArray[front];&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return (nItems == 0);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isFull() {&lt;br /&gt;
    return (nItems == maxSize);&lt;br /&gt;
  }&lt;br /&gt;
  public int size() {&lt;br /&gt;
    return nItems;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Queue theQueue = new Queue(5); // queue holds 5 items&lt;br /&gt;
    theQueue.insert(10); // insert 4 items&lt;br /&gt;
    theQueue.insert(20);&lt;br /&gt;
    theQueue.insert(30);&lt;br /&gt;
    theQueue.insert(40);&lt;br /&gt;
    theQueue.remove(); // remove 3 items&lt;br /&gt;
    theQueue.remove(); // (10, 20, 30)&lt;br /&gt;
    theQueue.remove();&lt;br /&gt;
    theQueue.insert(50); // insert 4 more items&lt;br /&gt;
    theQueue.insert(60); // (wraps around)&lt;br /&gt;
    theQueue.insert(70);&lt;br /&gt;
    theQueue.insert(80);&lt;br /&gt;
    while (!theQueue.isEmpty()) { // all items&lt;br /&gt;
      int n = theQueue.remove(); // (40, 50, 60, 70, 80)&lt;br /&gt;
      System.out.print(n);&lt;br /&gt;
      System.out.print(&amp;quot; &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;40 50 60 70 80&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>