#include <stdlib.h>
struct node {
 int data;
 struct node *link;
};
struct node *temp,*front, *rear; /* Global Declarations */

void Insert(int);
int Delete();
void Display();

main() {
 /* Main Program */
 int opn, elem;
 front = rear = NULL;
 do {
  clrscr();
  printf("\n1. Insertion \n2. Deletion\n3. Display\n4. Exit\n");
  printf("\nEnter your option : ");
  scanf("%d", &opn);
  switch (opn) {
  case 1:
   clrscr();
   printf("\nEnter Item : ");
   scanf("%d", &elem);
   Insert(elem);
   break;
  case 2:
   clrscr();
   elem = Delete();
   if (elem != -1)
    printf(" Deleted Node(From Front)with the Data: %d\n", elem);
   break;
  case 3:
   clrscr();
   printf("Linked List Implementation of Queue: Status:\n");
   Display();
   break;
  case 4:
   clrscr();
   printf("\n\n Terminating \n\n");
   break;
  default:
   printf("\n\nInvalid Option !!! Try Again !! \n\n");
   break;
  }
  getch();
 } while (opn != 4);
}

void Insert(int info)
{
 temp = (struct node *) malloc(sizeof(struct node));
  temp->data = info;
  temp->link = NULL;
  if (front == NULL)
  {
   front = rear = temp;
  }
  else {
   rear->link = temp;
   rear = temp;

 }
}

int Delete() {
 int info;
// struct node *t;
 if (front == NULL) {
  printf(" Underflow!!!");
  return -1;
 } else {
  temp = front;
  info = front->data;
  if (front == rear)
   rear = NULL;
  front = front->link;
  temp->link = NULL;
  free(temp);
  return (info);
 }
}

void Display()
{
 if (front == NULL)
  printf("Empty Queue\n");
 else
 {
  temp = front;
  while (temp)
  {
   printf("%d\n", temp->data);
   temp = temp -> link;
  }
 }
}
OUTPUT
1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 1
Enter Item : 10

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 1
Enter Item : 20

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 1
Enter Item : 30

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 1 
Enter Item : 40

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 1
Enter Item : 50

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 3
Linked List Implementation of Queue: Status:
 10
 20
 30
 40
 50

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 2
Deleted Node(From Front)with the Data: 10

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 2
Deleted Node(From Front)with the Data: 20

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 2
Deleted Node(From Front)with the Data: 30

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 2
Deleted Node(From Front)with the Data: 40

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 2
Deleted Node(From Front)with the Data: 50

1. Insertion 
2. Deletion
3. Display
4. Exit
Enter Your Choice : 2
OUEUE EMPTY

Leave a Reply

Subscribe to Posts | Subscribe to Comments

All Notes on BCA

All Notes  on BCA
BCA all subjects notes

Total Pageviews

Translate

Powered by Blogger.

Copyright © All Notes on BCA