Tuesday, 22 August 2023

A program to implement stack using linked list.

Stack Implementation in C

Stack Implementation in C


#include stdio.h
#include stdlib.h

struct node
{
    int data;
    struct node *next;
} * head, *travel;

void display()
{
    travel = head;
    if (travel == NULL)
    {
        printf("Linked-List is empty.\n");
    }
    else
    {
        while (travel != NULL)
        {
            printf("%d ", travel->data);
            travel = travel->next;
        }
    }
}

void push(int data)
{

    struct node *new_node = (struct node *)malloc(sizeof(struct node));
    struct node *last = head;
    new_node->data = data;
    new_node->next = NULL;
    if (head == NULL)
    {
        head = new_node;
        return;
    }

    while (last->next != NULL)
    {
        last = last->next;
    }
    last->next = new_node;
}

void pop()
{
    struct node *cur, *pre;
    cur = head;
    pre = head;

    if (head == NULL)
        printf("Linked-list is empty");
    else if (head->next == NULL)
    {
        printf("Deleted element is %d", head->data);
        free(head);
        head = NULL;
    }
    else
    {
        while (cur->next != NULL)
        {
            pre = cur;
            cur = cur->next;
        }
        printf("Deleted element is %d", cur->data);
        pre->next = NULL;
        free(cur);
        cur = NULL;
    }
}

void main()
{
    int choice, t;

    while (1)
    {
        printf("\nSELECT YOUR CHOICE::\n1.INSERT ELEMENT INTO STACK\n2.DELETE ELEMENT FROM STACK\n3.DISPLAY STACK\n4.Exit.");
        scanf("%d", &choice);

        switch (choice)
        {
        case 1:
        {
            printf("Enter the element::");
            scanf("%d", &t);
            push(t);
            break;
        }
        case 2:
        {
            pop();
            break;
        }
        case 3:
        {
            display();
            break;
        }
        case 4:
        {
            exit(0);
        }
        default:
            printf("Enter valid choice");
            break;
        }
    }
}

1 comment:

  1. Output:



    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.1

    Enter the element::12



    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.16

    Enter valid choice

    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.1

    Enter the element::25



    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.3

    12 25

    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.2

    Deleted element is 25

    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.2

    Deleted element is 12

    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.2

    Linked-list is empty

    SELECT YOUR CHOICE::

    1.INSERT ELEMENT INTO STACK

    2.DELETE ELEMENT FROM STACK

    3.DISPLAY STACK

    4.Exit.


    ReplyDelete

Interactive Report: Introduction to the Internet of Things (IoT) ...

Popular Posts