/**
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;
}
}
}
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