Stack Operations using Singly Linked List

C Program to Implement Stack Operations using Singly Linked List.


C Program to Implement Stack Operations using Singly Linked List Images-Pictures-Photos-Wall Papers-Pics--Basic C Programs-C Language Programs-C Program to Perform Stack Operations-Stack Operations using Singly Linked List-General C Programs-Stack Program-Push Pop Operations-Linked List Programs

Stack is a linear data structure in which the operations are performed based on LIFO principle.

Single linked list is a sequence of elements in which every element has link to its next element in the sequence.

The individual element is called as Node. Every node contains 2 fields data and next.

The data field is used to store actual value of that node and next field is used to store the address of the next node in the sequence.


C Program to Implement Stack Operations using Singly Linked List Images-Pictures-Photos-Wall Papers-Pics--Basic C Programs-C Language Programs-C Program to Perform Stack Operations-Stack Operations using Singly Linked List-General C Programs-Stack Program-Push Pop Operations-Linked List Programs

--------------------------------------------------------------------------------------------------------------------------


#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<stdlib.h>
#include<alloc.h>
void Push(int,node**);
void Display(node **);
int Pop(node**);
int Sempty(node *);
typedef struct stack
{
    int data;
    struct stack *next;
}node;
void main( )
{
    node *top;
    int data,item,choice;
    char ans,ch;
    clrscr( );
    top = NULL;
    printf("\n Stack using Linked List : nn");
    do{
    printf("\n The main menu");
    printf("\n1.Push\n2.Pop\n3.Display\n4.Exit");
    printf("\n Enter Your Choice");
    scanf("%d",&choice);
    switch(choice)
    {
         case 1:
         printf("\n Enter Data");
         scanf("%d",&data);
         push(data,&top);
         break;
         case 2:
         if(Sempty(top))
         printf("\n Stack underflow!");
         else
         {
              item = Pop(&top);
              printf("\n The popped node is %d",ite,m);
         }
         break;
         case 3:
         Display(&top);
         break;
         case 4:
         printf("\n Do You want to Quit?(y/n)");
         ch = getche( );
         if(ch =='y');
         exit(0);
         else
         break;
       }
       printf("\n Do you want to continue?");
       ans = getche( );
       getch( );
       clrscr( );
 }
while(ans =='y' || ans == 'y');
getch( );
}
void Push(int item, node **top)
{
    node *New;
    node *get_node(int);
    New = get_node(Item);
    New->next = *top;
    *top = New;
}
node *get_node(int item)
{
    node *temp;
    temp = (node *)malloc(sizeof(node));
    if(temp == NULL)
    printf("\n Memory cannot be allowed");
    temp->data = item;
    temp->next = NULL;
    return temp;
}
int Sempty(node *temp)
{
   if(temp == NULL)
   return 1;
   else
   return 0;
}
int Pop(node **top)
{
    int item;
    node *temp;
    item = (*top)->data;
    temp = *top;
    *top = (*top)->next;
    free(temp);
    return(item);
}
void Display(node **head)
{
   node *temp;
   temp = *head;
   if(Sempty(temp))
   printf("\n The stack is empty!");
   else
   {
        while(temp! = NULL)
        {
            printf("%d\n",temp->data_);
            temp = temp->next;
        }
}
getch( );
}

--------------------------------------------------------------------------------------------------------------------------

Output

--------------------------------------------------------------------------------------------------------------------------    

Displays Stack Operations.


EmoticonEmoticon