Prog - 8 Doubly Linked List
Prog - 8 Doubly Linked List
List (DLL) of Employee Data with the fields: SSN, Name, Dept, Designation, Sal,
PhNo
#include<stdio.h>
#include<stdlib.h>
struct Employee {
int SSN;
char Name[20];
char Dept[10];
char Designation[20];
float Sal;
};
int count=0;
void create_node() {
int ele;
newEmp=(NODE *)malloc(sizeof(NODE)); // Memory allocation of size NODE
if (newEmp == NULL)
exit(0);
scanf("%d", &newEmp->SSN);
scanf("%s", newEmp->Name);
scanf("%s", newEmp->Dept);
scanf("%s", newEmp->Designation);
scanf("%f", &newEmp->Sal);
scanf("%ld", &newEmp->PhNo);
newEmp->prev = NULL;
newEmp->next = NULL;
void displayCount()
if(head==NULL)
else
{
temp=head;
printf("\nEmployee Data:\n");
printf("SSN\tName\tDept\tDesignation\tSal\tPhNo\n");
while(temp!=NULL)
temp=temp->next;
void insert_front() {
create_node();
if(head==NULL) {
head=newEmp;
else {
newEmp->next = head;
head->prev=newEmp;
head=newEmp;
count++;
displayCount();
void insert_end() {
create_node();
if(head==NULL) {
head=newEmp;
else {
temp=head;
while(temp->next!=NULL) {
temp=temp->next;
temp->next=newEmp;
newEmp->prev=temp;
count++;
displayCount();
void delete_front() {
if(head == NULL) {
free(head);
head = NULL;
else {
temp = head;
count--;
displayCount();
void delete_end() {
if(head == NULL) {
head = NULL;
free(head);
else {
temp=head;
while(temp->next!=NULL) {
temp=temp->next;
temp->prev->next=NULL;
free(temp);
count--;
displayCount();
void doubleEndedQueueDemo()
{
int choice;
do {
printf("6. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
insert_front();
break;
case 2:
insert_end();
break;
case 3:
delete_front();
break;
case 4:
delete_end();
break;
case 5:
displayCount();
break;
case 6:
printf("Exiting Double Ended Queue Demo.\n");
break;
default:
do {
printf("******************************\n");
printf("8. Exit\n");
scanf("%d", &choice);
switch(choice)
case 1:
scanf("%d", &n);
for (int i = 0; i < n; i++)
insert_end();
break;
case 2:
displayCount();
break;
case 3:
insert_end();
break;
case 4:
insert_front();
break;
case 5:
delete_end();
break;
case 6:
delete_front();
break;
case 7:
doubleEndedQueueDemo();
break;
case 8:
printf("Exiting program.\n");
break;
default:
Output:
******************************
3. Insert at End
4. Insert at Front
8. Exit
Enter Designation: AP
Employee Data:
Number of employees: 1
Enter Designation: AP
Employee Data:
Number of employees: 2
Enter Designation: AP
Employee Data:
Number of employees: 3
Enter Designation: AP
Employee Data:
Number of employees: 4
Employee Data:
Number of employees: 3
Number of employees: 2
1. Insert at Front
2. Insert at End
5. Display DLL
6. Exit
Enter Designation: AP
Employee Data:
Number of employees: 3
Enter your choice: 4
Employee Data:
Number of employees: 2