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;
}
}
}
Output:
ReplyDeleteSELECT 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.