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 "); ...

SWAP Two Values without using temporary variable

/**     Program Name: Swap Two Numbers     Description: This Program swaps two number, using XOR     Author:  Tauqirul Haque        */ #include <stdio.h> #include <conio.h> int main() {     int firstNumber, secondNumber;        printf("Enter The First Number :  ");     scanf("%d",&firstNumber);        printf("\nEnter The Second Number :  ");     scanf("%d",&secondNumber);        printf("\n\nNumbers Before Swapping :  %d  <-> %d \n",firstNumber, secondNumber);        firstNumber = firstNumber^secondNumber;     secondNumber = firstNumber^secondNumber;     firstNumber = firstNumber^secondNumber;        printf("\nNumbers After Swapping : ...

Linux User Survey

The most popular distro is Mandriva, with 17.9% of the respondents using it, followed by Suse, with 16.2%. The most popular application is Firefox, with 47.9% of the respondents using it, followed by OpenOffice, with 31.6% and Thunderbird, with 12.0%. Also appended below is a table with the break-down of the survey participants by country. Top Distros 1 Mandriva 17.9% 2 Suse 16.2% 3 Fedora 11.1% 4 Debian 7.7% 5 Red Hat 6.8% 6 Xandros 5.1% 7 Slackware 5.1% 8 Ubuntu 3.4% 9 Centos 3.4% 10 Mepis 3.4% 11 Gentoo 3.4% 12 Knoppix 2.6% 13 Linspire 1.7% 1...