Skip to main content

Stack data structure

Welcome to imalshablog.blogspot.com. In my first blog, I decided to write about the stack data structure. It is a very easy and basic data structure as well as it is a linear data structure.
A stack is a list of elements in which an element may be inserted or deleted only at one end, called the top of the stack.
The insertion or deletion is happened according to the LIFO principle. LIFO stands for Last-In-First-Out.


Image result for last in first out images in stack
Mainly, there are five basic operations have in the stack.

  • Push -: This operation is used for inserting an element in the stack.

       Before happening push operation, check whether the stack is full. if the stack is full, display the error message and exit. if the stack is not full, increment top to point next empty space and inserts the next element to stack top. 


Push Algorithm

      IF top = max - 1
          print overflow
     END IF
     SET top = top + 1
     SET stack[top] = value
     END


  • Pop -: This operation is used for removing an element from the stack.
           Before performing the pop operation, we check whether the stack is empty. if the stack is empty, exit from the process. Then, it means the stack is empty and no more deletions can be done.

Otherwise, the element of the stack top that can be deleted. But, this element is not actually removed.  


Pop Algorithm

      IF  top = null
           print underflow
      END IF
      SET Value = stack[top]
      SET top = top - 1
      END 

  • Top or Peek -: top or peek is an operation that returns the value of the topmost element of the stack without deleting it from the stack. 


Peek Algorithm

      IF top = null
          print stack is empty
     ENDIF
     Return stack[top]
     END

  • isEmpty -: Return true if the stack is empty. otherwise, return false
  • isFull -:  Return true is the stack is full. otherwise, return false

The following example provided  for stack data structure.

#include<stdio.h>
#define MAX 100
int stack[MAX];
void push(int);
void pop();
int peek();
int display();
int top =-1;
int i;


void push(int x){
if(top==MAX-1){
printf("stack overflow");
}else{
top++;
stack[top]=x;
}
}

void pop(){
if(top==-1){
printf("stack underflow");
}else{
stack[top--];
}
}
int peek(){
if(top==-1){
return 0;
}else{
return stack[top];
}
}

int display(){
if(top==-1){
printf("stack is underflow");
}else{
for(i=top;i>=0;i--){
printf("\n %d",stack[i]);
            printf("\n");
}
}
}
int main(){
int x,option,i;
do{
  printf("\n ***MAIN MENU****");
  printf("\n 1. push");
  printf("\n 2. pop");
  printf("\n 3. peek");
  printf("\n 4. display");
  printf("\n 5. exit");
 
  printf("\n Enter the option:");
  scanf("%d",&option);
  switch(option){
  case 1: 
      printf("\nEnter the push number:");
      scanf("%d",&x);
      push(x);
      break;
   
case 2:
pop();
break;
case 3:
     peek();
if(top!= -1);
printf("\n value:%d\n",x);
break;
    
case 4:
display();
break;
   
}         
      
  }while(option != 5);
  return 0;
}

OUTPUT  




                     ✎ Imalsha Rathnaweera  πŸ• 02/24/2020    


Comments

Popular posts from this blog

Java Introduction

Welcome to my blog. Here, I think to write a very important article about the java programming language. Java language is a very important popular programming language for computer science students and also that is a platform. Java is used to develop web applications, mobile applications, games, and much more. It is developed by Sun Microsystem in 1995. A Java code is executed by Java Virtual Machine(JVM). JVM  is an abstract computing machine virtual machine interface. It is written by C programming language and it is operating system dependent. Java virtual machine is the main component in java language. we called java is a platform-independent and reason is that, Java virtual machine.  when we compile a java source file(java program) a Byte code is generated. This byte code can be used to run on any platform. Java Features and Benefits Java is an object-oriented language  Platform independent language It is open-source and free  Memory management Huge ...

OOP Concepts

What is OOP??? πŸ‘‡ OOP stands for Object-Oriented Programming and that concept is a programming paradigm based on the concept of "Objects" that contain data and methods. The main purpose of object-oriented programming is to increase the flexibility and maintainability of programs. Modularity for easier troubleshooting, reuse of code, flexibility, and effective problem solving are advantages of the OOP concept.   Now, let us consider what an object is... An object is anything that has state and behavior. For example, a car, a dog, a person, etc. At runtime, when the Java Virtual Machine (JVM) encounters the new keyword, it will use the appropriate class to make an object that is an instance of that class. Consider the car object it has state color, model, brand, weight, and as behaviors we can consider a break, accelerate, gear change. Classes A class can be defined as a template/ blueprint describes the behavior/state that the object of its type support. On th...