Unit-III (2).pptx
Document Details
Uploaded by HospitableRadon
Tags
Full Transcript
Unit-III Linear Data Structures --Stack Introduction: Stack is a simple linear data structure that allows adding and removing elements in a particular order. Stack is an ordered list of similar data type. Stack is a LIFO (Last in First out) structure or we can s...
Unit-III Linear Data Structures --Stack Introduction: Stack is a simple linear data structure that allows adding and removing elements in a particular order. Stack is an ordered list of similar data type. Stack is a LIFO (Last in First out) structure or we can say FILO (First in Last out). In another word a Stack is a straight information structure that follows the LIFO (Last-In-First-Out) guideline. Every time an element is added, it goes on the top of the stack and the only element that can be removed is the element that is at the top of the stack, just like a pile of objects. In other words, a stack can be defined as a container in which insertion and deletion can be done from the one end known as the top of the stack. Some key points related to stack It is called as stack because it behaves like a real-world stack, piles of books, etc. A Stack is an abstract data type with a pre-defined capacity, which means that it can store the elements of a limited size. It is a data structure that follows some order to insert and delete the elements, and that order can be LIFO or FILO. Working of Stack Stack works on the LIFO pattern. As we can observe in the below figure there are five memory blocks in the stack; therefore, the size of the stack is 5. Suppose we want to store the elements in a stack and let's assume that stack is empty. We have taken the stack of size 5 as shown below in which we are pushing the elements one by one until the stack becomes full. Since our stack is full as the size of the stack is 5. In the above cases, we can observe that it goes from the top to the bottom when we were entering the new element in the stack. The stack gets filled up from the bottom to the top. When we perform the delete operation on the stack, there is only one way for entry and exit as the other end is closed. It follows the LIFO pattern, which means that the value entered first will be removed last. In the above case, the value 5 is entered first, so it will be removed only after the deletion of all the other elements. Stack can be easily implemented using an Array or a Linked List. Arrays are quick, but are limited in size and Linked List Standard Stack Operations The following are some common operations implemented on the stack: push(): When we insert an element in a stack then the operation is known as a push. If the stack is full then the overflow condition occurs. pop(): When we delete an element from the stack, the operation is known as a pop. If the stack is empty means that no element exists in the stack, this state is known as an underflow state. isEmpty(): It determines whether the stack is empty or not. isFull(): It determines whether the stack is full or not.' peek(): It returns the element at the given position. count(): It returns the total number of elements available in a stack. change(): It changes the element at the given position. display(): It prints all the elements available in the stack. PUSH operation The steps involved in the PUSH operation is given below: Before inserting an element in a stack, we check whether the stack is full. If we try to insert the element in a stack, and the stack is full, then the overflow condition occurs. When we initialize a stack, we set the value of top as -1 to check that the stack is empty. When the new element is pushed in a stack, first, the value of the top gets incremented, i.e., top=top+1, and the element will be placed at the new position of the top. The elements will be inserted until we reach the max size of the stack. POP operation The steps involved in the POP operation is given below: Before deleting the element from the stack, we check whether the stack is empty. If we try to delete the element from the empty stack, then the underflow condition occurs. If the stack is not empty, we first access the element which is pointed by the top Once the pop operation is performed, the top is decremented by 1, i.e., top=top-1. Algorithm for PUSH operation: 1. Check if the stack is full or not. 2. If the stack is full, then print error of overflow and exit the program. 3. If the stack is not full, then increment the top and add the element. Algorithm for POP operation: 1. Check if the stack is empty or not. 2. If the stack is empty, then print error of underflow and exit the program. 3. If the stack is not empty, then print the element at the top and decrement the top. //Program for stack Operation Push,Pop and Display #include } #include else #include { #define max 5 cout