Question

2. Stacks and Queues Reinernber: Consider the following function: void systery( int num) { int current: /* create Stack stk a

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Note

######

In case of any doubt please comment

//#####################################################################

Given mystery(14)

Inside mystery() function first while loop will be executed
   First while loop:
         when num=14
             Here 14>8
                 so 14 will be inserted to queue --> que(14)
             num=14-2=12
        when num=12
             Here 12>8
                 so 12 will be inserted to queue --> que(14,12)
             num becomes 10
        when num=10
             similar to above
             10 will be inserted to queue -->que(14,12,10)
         num becomes 8

        when num=8
            Here 8 is not greater than 8, so else loop will execute
            8 will be pushed to stack--> stk(8)
            num becomes 6

       similary for different values of num 6, 4,2, num will be pushed to stack
            so stack becomes--> stk(2,4,6,8)

  
    In second while loop:
         when stack is not empty:
             pop(stk) gets 2 and makes -->stk(4,6,8)
             insert 2 to que makes---> que(14,12,10,2)
             print(2)

             Similary 4,6,8 will be poped and inserted to que
   At the end stack--> stk()
                    queue--> que(14,12,10,2,4,6,8)
            print(4,6,8)
        print(newline)

    In third while loop:
        while queue is not empty
            remove each element from fornt of queue and push to stack
           At the end stack--> stk(8,6,4,2,10,12,14)
                    queue--> que()
            print(14,12,10,2,4,6,8)
            print(newline)


    In fourth while loop
        while stack is not empty
            pop an element from stack
            insert the element to queue only if stack is not empty after pop
            At the end stack-stk()
                  queue --> que(8,6,4,2,10,12)
            print(8,6,4,2,10,12,14)
            print(newline)

    In fifth while loop
         while queue is not empty
            remove an element from queue and print the element
          
            At the end stack-stk()
                  queue -->que()
            print(8,6,4,2,10,12)

So final result is
2 4 6 8
14 12 10 2 4 6 8
8 6 4 2 10 12 14
8 6 4 2 10 12

//############################################################################################


When que is priority queue
***************************
Given mystery(14)

Inside mystery() function first while loop will be executed
   First while loop:
         when num=14
             Here 14>8
                 so 14 will be inserted to queue --> que(14)
             num=14-2=12
        when num=12
             Here 12>8
                 so 12 will be inserted to queue --> que(14,12)
             num becomes 10
        when num=10
             similar to above
             10 will be inserted to queue -->que(14,12,10)
         num becomes 8

        when num=8
            Here 8 is not greater than 8, so else loop will execute
            8 will be pushed to stack--> stk(8)
            num becomes 6

       similary for different values of num 6, 4,2, num will be pushed to stack
            so stack becomes--> stk(2,4,6,8)

  
    In second while loop:
         when stack is not empty:
             pop(stk) gets 2 and makes -->stk(4,6,8)
             insert 2 to que makes---> que(14,12,10,2)
             print(2)

             Similary 4,6,8 will be poped and inserted to que
   At the end stack--> stk()
                    queue--> que(14,12,10,2,4,6,8)
            print(4,6,8)
        print(newline)

    In third while loop:
        while queue is not empty
           remove largest element from queue and push it to stack
          At the end queue will become-->que()
                                 stack--> stk(2,4,6,8,12,14)
          print(14,12,10,8,6,4,2)
          print(newline)

   In fourth while loop
        while stack is not empty
            pop an element from stack
            insert the element to queue only if stack is not empty after pop
            At the end stack-stk()
                  queue --> que(2,4,6,8,10,12)
            print(2,4,6,8,10,12,14)
            print(newline)

   In fifth while loop
         while queue is not empty
            remove an element from queue and print the element
          
            At the end stack-stk()
                  queue -->que()
            print(2,4,6,8,10,12)

So final result is
2 4 6 8
14 12 10 8 6 4 2
2 4 6 8 10 12 14
2 4 6 8 10 12

Add a comment
Know the answer?
Add Answer to:
2. Stacks and Queues Reinernber: Consider the following function: void systery( int num) { int current:...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • In C++ Implement a queue data structure using two stacks. Remember a queue has enqueue and...

    In C++ Implement a queue data structure using two stacks. Remember a queue has enqueue and dequeue functions. You could use either the array or linked list implementation for stacks and queues. Source for stack array: --------------------------------------------------- #include<iostream> #define SIZE 100 #define NO_ELEMENT -999999 using namespace std; class Stack { int arr[SIZE]; // array to store Stack elements int top; public: Stack() { top = -1; } void push(int); // push an element into Stack int pop(); // pop the...

  • (C++) Two stacks of the same type are the same if they have the same number...

    (C++) Two stacks of the same type are the same if they have the same number of elements and their elements at the corresponding positions are the same. Overload the relational operator == for the class stackType that returns true if two stacks of the same type are the same; it returns false otherwise. Also, write the definition of the function template to overload this operator. Write a program to test the various overloaded operators and functions of classstackType. **Please...

  • HI USING C++ CAN YOU PLEASE PROGRAM THIS ASSIGNMENT AND ADD COMMENTS: stackARRAY: #include<iostream> #define SIZE...

    HI USING C++ CAN YOU PLEASE PROGRAM THIS ASSIGNMENT AND ADD COMMENTS: stackARRAY: #include<iostream> #define SIZE 100 #define NO_ELEMENT -999999 using namespace std; class Stack { int arr[SIZE]; // array to store Stack elements int top; public: Stack() { top = -1; } void push(int); // push an element into Stack int pop(); // pop the top element from Stack int topElement(); // get the top element void display(); // display Stack elements from top to bottom }; void Stack...

  • Create a C++ program. Include comment, input and output file. STACK IMPLEMENTATION USING AN link list IMPLEMENT THE FOLLOWING STACK OPERATIONS using  a TEMPLATED CLASS. WRITE ALL THE FULL-FUNCTION DE...

    Create a C++ program. Include comment, input and output file. STACK IMPLEMENTATION USING AN link list IMPLEMENT THE FOLLOWING STACK OPERATIONS using  a TEMPLATED CLASS. WRITE ALL THE FULL-FUNCTION DEFINITIONS NEEDED for the OPERATIONS. OUTPUT: PRINT ALL THE ELEMENTS ON THE STACK. Stack Operations initializestack: Initializes the stack to an empty state. isEmptyStack: Determines whether the stack is empty. If the stack is empty, it returns the value true; otherwise, it returns the value false. isFul1stack: Determines whether the stack...

  • Page ot 9 2. Stacks/Queues: Write a method splitStack that takes a stack of integers as...

    Page ot 9 2. Stacks/Queues: Write a method splitStack that takes a stack of integers as a parameter and splits it into negatives and non-negatives. The numbers in the stack should be rearranged so that all the negatives appear on the bottom of the stack and all the non-negatives appear on the top. In other words, if after this method is called you were to pop numbers off the stack, you would first get all the nonnegative numbers and then...

  • Define a class DoubleStack which implements two stacks of objects of type Object using a single...

    Define a class DoubleStack which implements two stacks of objects of type Object using a single shared array, so that the push and pop operations specify which of the two stacks is involved in the operation (as described below). (a) Specify necessary instance variables and write a constructor “DoubleStack(int n)” that takes integer n and creates an empty DoubleStack object with the shared array with room for n elements (2 pt); b) Write methods "boolean push(int i, Object o)" and...

  • For merge sort the time complexity is Θ(nlogn), but what if we had two unsorted stacks...

    For merge sort the time complexity is Θ(nlogn), but what if we had two unsorted stacks and wanted to but merge them into one final sorted stack! what is the time complexity then? code / Java program to merge to unsorted stacks // into a third stack in sorted way. import java.io.*; import java.util.*;    public class GFG {            // This is the temporary stack     static Stack<Integer> res = new Stack<Integer>();     static Stack<Integer> tmpStack = new Stack<Integer>();            //...

  • help finish Queue, don't think I have the right thing. # 1. After studying the Stack...

    help finish Queue, don't think I have the right thing. # 1. After studying the Stack class and testStack() functions in stack.py # complete the Queue class below (and test it with the testQueue function) # # 2. Afer studying and testing the Circle class in circle.py, # complete the Rectangle class below (and test it with the testRectangle function) # # # 3. SUBMIT THIS ONE FILE, with your updates, TO ICON. # # # NOTE: you may certainly...

  • I was told I need three seperate files for these classes is there anyway to tie...

    I was told I need three seperate files for these classes is there anyway to tie all these programs together into one program after doing that. I'm using netbeans btw. import java.util.ArrayList; import java.util.Scanner; /** * * */ public class MySorts {       public static void main(String[] args) {             Scanner input = new Scanner(System.in);             String sentence;             String again;             do {                   System.out                               .println("Enter a sentence, I will tell you if it is a palindrome: ");...

  • Suppose we decide to add a new operation to our Stack ADT called sizeIs, which returns...

    Suppose we decide to add a new operation to our Stack ADT called sizeIs, which returns a value of primitive type int equal to the number of items on the stack. The method signature for sizeIS is public int sizeIs() a.) Write the code for sizeIs for the ArrayStack class b.) Write the code for sizeIs for the LinkedStack class (do not add any instance variables to the class; each time sizeIs is called you must "walk" through the stack...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT