(a)
Describe thenumber of disk accesses and CPU time for n stack operations in worse-case by using the simple implementation.
(a)
Explanation of Solution
In worse case for every stack operation it requires disk access for implementation sothe number of disk accesses for n stack operations using this simple implementation is asymptotically equals to
The CPU time in worse case for n -stack operations is
(b)
Describethe number of diskaccesses and the CPU time required for n -PUSH operations in worse-case.
(b)
Explanation of Solution
The new page starts only when everymthpushes therefore the number of disk operations is n/m. The diskaccess requires time of asymptotically
Hence,the number of disk accesses and CPU time for n - PUSH operations in worse-case is
(c)
Describe the disk accesses and the CPU time required for n -stack operations in worse-case.
(c)
Explanation of Solution
Stack operations include PUSH and POP. The PUSH and POP operations requires alternate disk accesses that means mdisk accesses for performing stack operation so the number of disk accesses asymptotically is
The CPU time for performing stack operations is equal to
(d)
Describe that the amortized number of disk accesses is O (1 /m ) and the amortized CPU time is O (1) for any stack operation .
(d)
Explanation of Solution
At the initial function called as Potential Function of stack defined by difference of size of stack and recent pass which is multiple of m. The value of potential function is 0 at initial state.
When any stack operation is performed the value is decreased and increased according to the operation by one.Loading new pages requires the position which is at leastm position away from recent position to cross the page boundary therefore loading and storing of new stack page requires CPU time of O ( m ).
By dropping appropriate Potential function of order O ( m ) and selecting the suitable value for potential value results to managed the stack pages so that the amortized number of disk accesses for any stack operation is O (1 /m ) and the amortized CPU time for any stack operation is O (1).
Want to see more full solutions like this?
- In Python:Two stacks S1 and S2 can be implemented using one array. Write procedures: PopS1(Stack), PushS1(Stack,x), PopS2 (Stack), PushS2(Stack,x). The procedures should not declare an overflow unless every slot in the array is used.arrow_forwardSolve this problem of DSA using C language (using arrays) Problem Statement: Recall the concepts of stacks. Implement a stack using arrays. Build a program that takes an infix statement and converts it to a postfix statement. If the statement is incorrect the program should inform the user that the input statement is incorrect. Otherwise it should return the postfix expression. After the statement has been successfully converted, the program should then evaluate this postfix expression and return the result.arrow_forwardComplete the following ():a. A stack is used by the system when a function call is madeb. A stack can become full during program executionarrow_forward
- Develop an application using java language that store characters A, B and C in a stack array and then displays both the size and the last-in element of the stack. The application should then remove the last element of the stack and then display again both the size and the last-in element of the stack. Appropriate stack methods should be used to add, delete and display characters.arrow_forwardCode in C One of the applications of a stack is to backtrack - that is, to retrace its steps. As an example, imagine we want to read a list of items, and each time we read a negative number we must backtrack and print the five numbers that come before the negative number and then discard the negative number. Use a stack to solve this problem. Use a stack and push them into the stack (without printing them) until a negative number is read. At this time, stop reading and pop five items from the stack and print them. If there are fewer than five items in the stack, print an error message and stop the program. After printing the five items, resume reading data and placing them in the stack. When the end of the file is detected, print the message and the items remaining in the stack. Sample Output 1 2 3 4 5 6 7 -1 7 6 5 4 3 9 6 4 3 -2 3 4 6 9 2 -3 Number of items left is less than five! Program is terminating! Project name : Backtrack Filenames: backtrack.h, backtrack.c,…arrow_forwardWrite a program to implement a Stack using array. In order to implement the stack, programfor following stack operations has to be written: • void push(int): to insert data onto the stack.• Int pop(): to remove and return the last inserted element from the stack.• Int top(): Returns the last inserted element without removing it.• int Size(): Returns the number of elements stored in the stack.• int IsEmptyStack(): Indicates whether any elements are stored in the stack or not.• int IsFullStack(): Indicates whether the stack is full or not.arrow_forward
- Java : Write the Java code segment that uses a stack to determine if a string is a palindrome (assume all that blanks have been removed). A palindrome contains the same characters forwards as backwards, for example level is a palindrome. Your solution must use only a stack, you MUST process the string from left to right, and are allowed to go through the string only once. You must use an efficient algorithm. Use : ArrayStack class given below: /** * Creates an empty stack using the default capacity. */ public ArrayStack() { this(DEFAULT_CAPACITY); } /** * Creates an empty stack using the specified capacity. * @param initialCapacity the initial size of the array */ public ArrayStack(int initialCapacity) { top = 0; stack = (T[])(new Object[initialCapacity]); }arrow_forwardWrite a program in c or c++ to implement a Stack using array. In order to implement the stack, programfor following stack operations has to be written: • void push(int): to insert data onto the stack.• Int pop(): to remove and return the last inserted element from the stack.• Int top(): Returns the last inserted element without removing it.• int Size(): Returns the number of elements stored in the stack.• int IsEmptyStack(): Indicates whether any elements are stored in the stack or not.• int IsFullStack(): Indicates whether the stack is full or not.arrow_forwardA drop-out stack is a data structure that acts just like a stack except that if the stack size is n, and the n + 1 element is pushed, the first element is lost. Using an array, create a drop-out stack. (Hint: A circular array implementation would be appropriate.)arrow_forward
- JAVA PROGRAMMING Assume you are trying to implement a stack, and have already implemented a singly- linked list with just a head reference. When implementing the stack using a linked list, you realize you don't need to write very much code at all, because you can just call the linked list methods you have already completed. Match the linked list method you would call in the implementation of each stack operation. 1. addFront 2. addBack isEmpty 3. removeFront push 4. removeBack top 5. getAtlndex 6. contains dod 7. size 8. toStringarrow_forwardTo copy stack (S1) elements to another stack (S2) in a reverse order, you need to use: One additional stack (temp1) Two additional stacks (temp1 and temp2) You don't need to use additional stack No Correct answerarrow_forwardStacks are an important data structure in their own right and they may be implemented in several ways. Implement a stack as an array and i. Write functions to perform the following operations on it. With each operation explain the time complexity associated with it when performeda. Push() b. pop() c. size() d. peek()ii. Briefly explain any two problems when stacks are implemented as an array.arrow_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning