Java – Data Structures – Stack

Stack-ը Vector-ի ենթադասն է, որը իրականացնում է ստանդարտ last-in, first-out stack։

Այն միայն սահմանում է կանխադրված կոնստրուկտորը, որը ստեղծում է դատարկ Stack: Stack-ը ներառում է Vector-ի կողմից սահմանված բոլոր մեթոդները և ավելացնում է մի քանիսը իր սեփականներից:

Stack( )

 

Բացի parent class-ի վեկտորից ստացված մեթոդներից, Stack-ը սահմանում է հետևյալ մեթոդները `

Sr.No. Method & Description
1 boolean empty()

Ստուգում է, թե արդյոք stack դատարկ է, թե ոչ: Վերադարձնում է true, եթե այն դատարկ է և false, եթե stack-ը պարունակում է էլեմենտներ։

2 Object peek( )

Վերադարձնում է էլեմենտը stack-ի վերևի հատվածում, սակայն չի հեռացնում այն։

3 Object pop( )

Վերադարձնում է էլեմենտը stack-ի վերևի հատվածում, հեռացնելով պրացեսը։

4 Object push(Object element)

Հրում է Էլեմենտը դեպի stack։ Էլեմենտը նույնպես վերադարձվում է:

5 int search(Object element)

Փնտրում է էլեմենտը stack-ում։ Հայտնաբերելու դեպքում է offset-ը  վերադարձվում է: Հակառակ դեպքում՝ .1։

 

Օրինակ

Հետևյալ ծրագիրը ցույց է տալիս մի քանի մեթոդներ, որոնք աջակցվում են այս հավաքածույի կողմից՝

import java.util.*;

public class StackDemo {   

static void showpush(Stack st, int a) {    

  st.push(new Integer(a));    

  System.out.println(“push(” + a + “)”);  

    System.out.println(“stack: ” + st);

   }   

static void showpop(Stack st) {  

    System.out.print(“pop -> “);    

  Integer a = (Integer) st.pop();   

   System.out.println(a);    

  System.out.println(“stack: ” + st);

   }   

public static void main(String args[]) {    

  Stack st = new Stack();     

System.out.println(“stack: ” + st);  

    showpush(st, 42);  

    showpush(st, 66); 

     showpush(st, 99);   

   showpop(st);    

  showpop(st);   

 showpop(st);    

  try {      

   showpop(st);    

  } catch (EmptyStackException e) {  

       System.out.println(“empty stack”);   

   }  

}

}

Արդյունքը՝

stack: [ ]

push(42)

stack: [42]

push(66)

stack: [42, 66]

push(99)

stack: [42, 66, 99]

pop -> 99

stack: [42, 66]

pop -> 66

stack: [42]

pop -> 42

stack: [ ]

pop -> empty stack