Get current working directory


When an element is inserted in a stack, the concept is called a push



Download 0,84 Mb.
bet2/21
Sana21.04.2022
Hajmi0,84 Mb.
#569000
1   2   3   4   5   6   7   8   9   ...   21
Bog'liq
notes2

When an element is inserted in a stack, the concept is called a push.

  • When an element is removed from the stack, the concept is called pop.

  • Trying to pop out an empty stack is called underflow (treat as Exception).

  • Trying to push an element in a full stack is called overflow (treat as Exception).

    In this article, we will write a simple program to reverse a Stack using recursion. we are not using loop constructs like a while, for etc, and we only use the following ADT functions on Stack:



    • isEmpty(S)

    • push(S)

    • pop(S)

    Let's write generic methods so that we can reverse any data type like String, Integer, Double etc.
    In this program, we will demonstrate how to reverse Integer Stack and String Stack.
    Please refer the comments in below program are self-descriptive.
    import java.util.Iterator;
    import java.util.Stack;

    /**
    * Generic methods to reverse stack


    * @author Ramesh Fadatare
    *
    */
    public class StackReversal {

    public static void reverseStack(Stack stack) {


    if (stack.isEmpty()) {
    return;
    }
    // Remove bottom element from stack
    T bottom = popBottom(stack);
    // Reverse everything else in stack
    reverseStack(stack);
    // Add original bottom element to top of stack
    stack.push(bottom);
    }
    private static T popBottom(Stack stack) {
    T top = stack.pop();
    if (stack.isEmpty()) {
    // If we removed the last element, return it
    return top;
    } else {
    // We didn't remove the last element, so remove the last element from what remains
    T bottom = popBottom(stack);
    // Since the element we removed in this function call isn't the bottom element,
    // add it back onto the top of the stack where it came from
    stack.push(top);
    return bottom;
    }
    }

    private static void printStack(Stack stack){


    Iterator iterator = stack.iterator();
    while (iterator.hasNext()) {
    T t = (T) iterator.next();
    System.out.println(t);
    }
    }
    public static void main(String[] args) {
    Stack stack = new Stack<>();
    stack.push(10);
    stack.push(20);
    stack.push(30);
    stack.push(40);
    System.out.println("Stack elements before reverse");
    printStack(stack);
    StackReversal reversal = new StackReversal();
    reversal.reverseStack(stack);
    System.out.println("Stack after before reverse");
    printStack(stack);
    Stack stack1 = new Stack<>();
    stack1.push("a");
    stack1.push("b");
    stack1.push("c");
    stack1.push("d");
    System.out.println("Stack elements before reverse");
    printStack(stack1);
    reversal.reverseStack(stack1);
    System.out.println("Stack after before reverse");
    printStack(stack1);
    }
    }
    Output:
    Stack elements before reverse
    10
    20
    30
    40
    Stack after before reverse
    40
    30
    20
    10
    Stack elements before reverse
    a
    b
    c
    d
    Stack after before reverse
    d
    c
    b
    a



    Download 0,84 Mb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7   8   9   ...   21




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish