Skip to main content

STACK Using Linked List

/**
    Program Name: STACK

    Description: This Program Implements Stack using Linked List

    Author:  Tauqirul Haque
       
*/ 
  


struct StackLinkedList
{
    int item;
    char name[30];
    struct StackLinkedList *next;
};

typedef struct StackLinkedList node;

void push(node **);
void pop(node **);
void display(node **);

void main()
{
    node *top = NULL;
    int choice, item;
   
    while(choice != 4)
    {
        printf("\n\t\t\t1. Push Element");
        printf("\n\t\t\t2. Pop Element ");
        printf("\n\t\t\t3. Display Stack");
        printf("\n\t\t\t4. Exit Program");
       
        printf("\nEnter Your Choice #  ");
        scanf("%d",&choice);
       
        switch(choice)
        {
            case 1 :
                    push(&top);
                    break;
            case 2:
                    pop(&top);
                    break;
            case 3:
                    display(&top);
                    break;
            case 4:
                    printf("\n\nProgram Terminated .. ");
                    exit(0);
        }
    }
}

void push(node **top)
{
    node *temp;
    int i;
    temp = (node *)malloc(sizeof(node));
   
    if(temp == NULL)
    {
        printf("\nStack OVERFLOW...");
        return;
    }
   
    printf("\nEnter the Element #  ");
    scanf("%d",&i);
    fflush(stdin);
    printf("\nEnter the Name :  ");
    gets(temp->name);
    fflush(stdin);
    temp->item=i;
   
    temp->next = *top;
    *top = temp;
}
   
   

void pop(node **top)
{
    node *temp = *top;
       
    if(temp == NULL)
    {
        printf("\n\nStack UNDERFLOW");
    }
    else
    {
        printf("\nThe Element = %d and Name = %s ",temp->item,temp->name);
         temp = temp->next;
        *top = temp;
          
    }
}

void display(node **top)
{
    node *temp = *top;
   
    if(temp == NULL)
    {
        printf("\n\n Stack is Empty ... ");
        return;
    }
    else
    {
        printf("\nThe Elements are #  ");
        while(temp != NULL)
        {
            printf("%5d \t Name = %s\n",temp->item,temp->name);
            temp = temp->next;
        }
    }
}
       
   
       
   
   
   
  

Comments

Popular posts from this blog

Singly Linked List

/**     Program Name: Singly Linked List     Description: This Program is for Implemeting Singly Linked List     Author:  Tauqirul Haque         */ struct Linklist {     int item;     struct Linklist *next; }; typedef struct Linklist node; void insertAtBeginning(node **); void createAppendNode(node **); void insertInMiddle(node **); void deleteNode(node **); void displayNode(node **); void countNode(node **);  void searchElement(node **); void reverse(node **); void main() {     node *head = NULL;     int choice = 0;     while(choice != 9)     {             printf("\n\t\t\t1. Add Node At The Beginning ");     printf("\n\t\t\t2. Insert Element in the Middle ");     printf("\n\t\t\t3. Append New Node "); ...

BUBBLE SORT

/**     Program Name: BUBBLE SORT     Description: This Program sorts a Given Array in Ascending Order     Author:  Tauqirul Haque         */ #define SIZE 10 void bubbleSort(int data[SIZE]); void displayElement(int data[SIZE]); void main() {     int data[SIZE] = { 45,34,66,89,45,34,76,22,79, 12};         printf("\nThe Original Array Before Sorting ... ");     displayElement(data);         printf("\nArray After Sorting ... ");     bubbleSort(data);     displayElement(data);     } void displayElement(int data[SIZE]) {     int i;     for(i=0; i     {         printf("\nData[%d]  =  %d",i,data[i]);     }     printf("\n"); } void ...

FINDING FACTORIAL OF A NUMBER

/**     Program Name: FINDING FACTORIAL     Description: This Program finds a Factorial of a Given Number     Author:  Tauqirul Haque         */ long fact(long n); void main() {     long n;     printf("Enter N : ");     scanf("%d",&n);         if(n < 0)   //if its a neg number then changing the sign     {         n = -n;     }         printf("The fact of %ld  =  %ld \n\n",n,fact(n)); } long fact(long n) {     if(n==0 || n==1)     {         return 1;     }     else     {         return n*fact(n-1);     } }