<?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_Stack</id>
		<title>Java Tutorial/Collections/Your Stack - История изменений</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_Stack"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Collections/Your_Stack&amp;action=history"/>
		<updated>2026-04-11T13:16:43Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Collections/Your_Stack&amp;diff=4722&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_Stack&amp;diff=4722&amp;oldid=prev"/>
				<updated>2010-06-01T05:05:00Z</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:05, 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_Stack&amp;diff=4721&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_Stack&amp;diff=4721&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 stack allows access to only one data item: the last item inserted ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Push: To insert a data item on the stack&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Pop : To remove a data item from the top of the stack&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Peek: Read the value from the top of the stack without removing it.&amp;lt;/LI&amp;gt;&amp;lt;/OL&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 Stack {&lt;br /&gt;
  private int maxSize;&lt;br /&gt;
  private double[] stackArray;&lt;br /&gt;
  private int top;&lt;br /&gt;
  public Stack(int s) {&lt;br /&gt;
    maxSize = s;&lt;br /&gt;
    stackArray = new double[maxSize];&lt;br /&gt;
    top = -1; &lt;br /&gt;
  }&lt;br /&gt;
  public void push(double j) {&lt;br /&gt;
    stackArray[++top] = j;&lt;br /&gt;
  }&lt;br /&gt;
  public double pop() {&lt;br /&gt;
    return stackArray[top--];&lt;br /&gt;
  }&lt;br /&gt;
  public double peek() {&lt;br /&gt;
    return stackArray[top];&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return (top == -1);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isFull() {&lt;br /&gt;
    return (top == maxSize - 1);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Stack theStack = new Stack(10);&lt;br /&gt;
    theStack.push(20);&lt;br /&gt;
    theStack.push(40);&lt;br /&gt;
    theStack.push(60);&lt;br /&gt;
    theStack.push(80);&lt;br /&gt;
    while (!theStack.isEmpty()) {&lt;br /&gt;
      double value = theStack.pop();&lt;br /&gt;
      System.out.print(value);&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;80.0 60.0 40.0 20.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Demonstrating a stack implemented as a 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 LinkStack {&lt;br /&gt;
  private LinkList theList;&lt;br /&gt;
  public LinkStack() {&lt;br /&gt;
    theList = new LinkList();&lt;br /&gt;
  }&lt;br /&gt;
  public void push(int j) {&lt;br /&gt;
    theList.insertFirst(j);&lt;br /&gt;
  }&lt;br /&gt;
  public double pop() {&lt;br /&gt;
    return theList.deleteFirst();&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return (theList.isEmpty());&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;
    LinkStack theStack = new LinkStack();&lt;br /&gt;
    theStack.push(20);&lt;br /&gt;
    theStack.push(40);&lt;br /&gt;
    System.out.println(theStack);&lt;br /&gt;
    theStack.push(60);&lt;br /&gt;
    theStack.push(80);&lt;br /&gt;
    System.out.println(theStack);&lt;br /&gt;
    theStack.pop();&lt;br /&gt;
    theStack.pop();&lt;br /&gt;
    System.out.println(theStack);&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} {20} &lt;br /&gt;
{80} {60} {40} {20} &lt;br /&gt;
{40} {20}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Stack Example: Delimiter Matching ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This time we use the Stack class from Java library.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Using stack to check matching brackets&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Examples:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;c[d]        // correct&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;a{b[c]d}e   // correct&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;a{b(c]d}e   // not correct; ] doesn&amp;quot;t match (&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;a[b{c}d]e}  // not correct; nothing matches final }&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;a{b(c)      // not correct; Nothing matches opening {&amp;lt;/LI&amp;gt;&amp;lt;/OL&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;
import java.util.Stack;&lt;br /&gt;
class BracketChecker {&lt;br /&gt;
  private String input;&lt;br /&gt;
  public BracketChecker(String in) {&lt;br /&gt;
    input = in;&lt;br /&gt;
  }&lt;br /&gt;
  public void check() {&lt;br /&gt;
    Stack&amp;lt;Character&amp;gt; theStack = new Stack&amp;lt;Character&amp;gt;();&lt;br /&gt;
    for (int j = 0; j &amp;lt; input.length(); j++) {&lt;br /&gt;
      char ch = input.charAt(j);&lt;br /&gt;
      switch (ch) {&lt;br /&gt;
      case &amp;quot;{&amp;quot;: &lt;br /&gt;
      case &amp;quot;[&amp;quot;:&lt;br /&gt;
      case &amp;quot;(&amp;quot;:&lt;br /&gt;
        theStack.push(ch);&lt;br /&gt;
        break;&lt;br /&gt;
      case &amp;quot;}&amp;quot;: &lt;br /&gt;
      case &amp;quot;]&amp;quot;:&lt;br /&gt;
      case &amp;quot;)&amp;quot;:&lt;br /&gt;
        if (!theStack.isEmpty()) {&lt;br /&gt;
          char chx = theStack.pop();&lt;br /&gt;
          if ((ch == &amp;quot;}&amp;quot; &amp;amp;&amp;amp; chx != &amp;quot;{&amp;quot;) || (ch == &amp;quot;]&amp;quot; &amp;amp;&amp;amp; chx != &amp;quot;[&amp;quot;) || (ch == &amp;quot;)&amp;quot; &amp;amp;&amp;amp; chx != &amp;quot;(&amp;quot;))&lt;br /&gt;
            System.out.println(&amp;quot;Error: &amp;quot; + ch + &amp;quot; at &amp;quot; + j);&lt;br /&gt;
        } else&lt;br /&gt;
          System.out.println(&amp;quot;Error: &amp;quot; + ch + &amp;quot; at &amp;quot; + j);&lt;br /&gt;
        break;&lt;br /&gt;
      default:&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (!theStack.isEmpty()){&lt;br /&gt;
      System.out.println(&amp;quot;Error: missing right delimiter&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    String input;&lt;br /&gt;
    input = &amp;quot;[]]()()&amp;quot;;&lt;br /&gt;
    BracketChecker theChecker = new BracketChecker(input);&lt;br /&gt;
    theChecker.check();&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;Error: ] at 2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using stack to reverse a string ==&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 Stack {&lt;br /&gt;
  private int maxSize;&lt;br /&gt;
  private char[] stackArray;&lt;br /&gt;
  private int top;&lt;br /&gt;
  public Stack(int s) {&lt;br /&gt;
    maxSize = s;&lt;br /&gt;
    stackArray = new char[maxSize];&lt;br /&gt;
    top = -1; &lt;br /&gt;
  }&lt;br /&gt;
  public void push(char j) {&lt;br /&gt;
    stackArray[++top] = j;&lt;br /&gt;
  }&lt;br /&gt;
  public char pop() {&lt;br /&gt;
    return stackArray[top--];&lt;br /&gt;
  }&lt;br /&gt;
  public char peek() {&lt;br /&gt;
    return stackArray[top];&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isEmpty() {&lt;br /&gt;
    return (top == -1);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isFull() {&lt;br /&gt;
    return (top == maxSize - 1);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    String input = &amp;quot;input&amp;quot;;&lt;br /&gt;
    int stackSize = input.length();&lt;br /&gt;
    Stack theStack = new Stack(stackSize);&lt;br /&gt;
    for (int j = 0; j &amp;lt; input.length(); j++) {&lt;br /&gt;
      char ch = input.charAt(j);&lt;br /&gt;
      theStack.push(ch);&lt;br /&gt;
    }&lt;br /&gt;
    while (!theStack.isEmpty()) {&lt;br /&gt;
      char ch = theStack.pop();&lt;br /&gt;
      System.out.println(ch);&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;t&lt;br /&gt;
u&lt;br /&gt;
p&lt;br /&gt;
n&lt;br /&gt;
i&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>