Let’s say we have two empty stacks of integers, S1 and S2. Draw a picture of each stack after the following operations:
pushStack(S1, 2); //push 2 into S1
pushStack(S1, 4);
pushStack(S1, 6);
pushStack(S1, 8);
pushStack(S1, 10);
pushStack(S1, 12);
while ( !emptyStack(S1) )
{
popStack(S1, x); //pop the top item of S1 and save it to variable x
popStack(S1, x);
pushStack(S2, x)
}
Answer:
After execution of code, stack S1 has not element that
is S1 is empty stack and stack S2 has three elements. The element
of stack S2 are 10, 6, 2 where 2 is top most element.


Let’s say we have two empty stacks of integers, S1 and S2. Draw a picture of...
Consider two sorted stacks S1 and S2 (min on top) including comparable elements. Write a method to merge S1 and S2 and create one stack that is sorted (min on top). You are allowed to use stacks as extra space. Note: stack operations include push, pop, top and empty.
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>(); //...
My Output s1 (size 0): s1 is empty Testing push() s1 (size 1): 17 s1 is not empty s1 (size 4): 4 6 2 17 s1 is not empty Testing copy constructor s1 (size 4): 4 6 2 17 s2 (size 4): 4 6 2 17 Testing clear() s1 (size 0): s2 (size 4): 0 1477251200 1477251168 1477251136 s3 (size 4): 28 75 41 36 Testing assignment operator s3 (size 4): 28 75 41 36 s4 (size 4): 28 75...
(ii) [6 marks] Assume that we have an empty stack S and an empty queue Q. Given a series of stack operations on S as below: Push(S,10), Push(S, 7), Push(S, 23), Pop(S), Push(S, 9), Pop(S), Pop(S) Output the element returned by each Pop operation. Given a series of queue operations on Q as below: Enqueue(0,10),Enqueue(Q,20), Enqueue(0,33), Dequeue(Q), Enqueue(Q,55), Dequeue(Q), Dequeue(Q) Output the element returned by each Dequeue operation. (iii) [8 marks] Given an empty binary search tree T, draw the...
ae two stacks, a number stack and an operator stack, to evaluate the tollowing algebraic expression (6+2*8/(16-4*3))/2 Read the items in the expression one at a time from left to right. Show the number stack and the operator stack after each item in the expression has been read and processed. If processing an item involves evaluating the top, show the two stacks af and then show the two stacks again after a "(” , if any, is popped off or...
2. Stacks and Queues Reinernber: Consider the following function: void systery( int num) { int current: /* create Stack stk and Queue que / Stacks: the function push places the given parameter on the top of the stack, the function pop removes and returns the top of the stack, and the function empty returns true (i.c., 1) if the stack is empty or false (i.e., 0) otherwise. Queues: the function insert places the given parameter on the end of the...
Suppose the following operations are performed on a queue containing integers. Create an empty queue Push 1 Push 2 Push 3 Pop Push 4 Push 5 Pop Now do the following: a. Draw a sketch of a doubly linked-list based queue after steps 1-4. b. Draw a sketch of a doubly linked-list based queue after all steps 1-8. c. Draw a sketch of a circular array-based queue with capacity 6 after steps 1-4. Specify f, t, and size after each...
Data Structures and Algorithm (Stacks and Queues)
Imagine you have a Queue of integers, Q1 and Q2. Draw a picture
of Q1 and Q2 after the following operations:
**Note: make sure that ALL variables are
simulated.**
Data are: 5,7,12,4,0,4,6 (these are the numbers) Algorithm: 1 loop (not end of the file) 1read number 2enqueue(Q1,number) 3enqueue(Q2,number) 4loop(not empty Q1) 1dequeue(Q1,x) 2enqueue(Q2,x) Send loop 2end loop
Stacks are used by compilers to help in the process of
evaluating expressions and generating machine language code.In this
exercise, we investigate how compilers evaluate arithmetic
expressions consisting only of constants, operators and
parentheses. Humans generally write expressions like 3 + 4and 7 /
9in which the operator (+ or / here) is written between its
operands—this is called infix notation. Computers “prefer” postfix
notation in which the operator is written to the right of its two
operands. The preceding...
public class NumStack implements Comparable{ private Integer[] data; private int index; public NumStack(int cap){ data=new Integer[cap]; index =-1; } public boolean isEmpty(){ return index == -1; } public boolean isFull(){ return index==data.length -1; } public NumStack pop(){ if(!isEmpty()) data[index--]=null; return this; } public int size(){ return index+1; } public Integer top(){ if(isEmpty()) return null; return data[index]; } public NumStack push(int num){ if(index < data.length-1) data[++index]=num; return this; } public int compareTo(NumStack s){} } public int compareTo(NumStack s) compares two stack...