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

Extracting RPM

Sometimes we are required to extract files inside an RPM file without installing it. For example is when we take binaries from one distribution and use it on another distribution, where RPM is not the default package manager. The rpm2cpio command comes in handy. Check out the given example below ... $ rpm2cpio coreutils-6.9-2.fc7.i586.rpm | cpio -idv ./bin/basename ./bin/cat ./bin/chgrp .... ... [.. etc ] Now you can use the extracted files

Getting Linux CD Free to Your Door-Steps

Getting a UBUNTU Linux CD at your doorstep is very easy, and this all comes to you at NO-COST.. no need to pay a single cent. All you need to do is to follows these given steps .... Step 1: Log on to https:/ /shipit. ubuntu. com Step 2: Click on the Required CD you want .. (i.e. Desktop or Server Version) Step 3: Log into your account or create a new one ( if you don't have one) Step 4: Fill in your details with proper Address and done .... The CD will arrive you with 1-1.5 month ... ........... Happy Linux .............