Linked List Types
Linked List Types
#include <stdio.h>
#include <stdlib.h>
node* getnode();
void createlist(node **headptr);
void insertfirst(node **headptr);
void insertlast(node **headptr);
void insertmiddle(node **headptr);
void deletefirst(node **headptr);
void deletelast(node **headptr);
void deletemiddle(node **headptr);
void modifynode(node *head);
void viewlist(node *head);
int countlist(node *head);
void releasenode(node *newnode);
void displaymenu();
int main() {
node *head = NULL;
int ch, count;
displaymenu();
while (1) {
printf("\n\n Enter the Choice? ");
fflush(stdin);
scanf("%d", &ch);
switch (ch) {
case 0:
createlist(&head);
break;
case 1:
insertfirst(&head);
break;
case 2:
insertlast(&head);
break;
case 3:
insertmiddle(&head);
break;
case 4:
deletefirst(&head);
break;
case 5:
deletelast(&head);
break;
case 6:
deletemiddle(&head);
break;
case 7:
modifynode(head);
break;
case 8:
viewlist(head);
break;
case 9:
count = countlist(head);
printf("Number of nodes in the list is: %d", count);
break;
case 10:
displaymenu();
break;
case 11:
printf("Exiting program...\n");
exit(0);
break;
default:
printf("Invalid option. Exiting program...\n");
exit(0);
}
}
}
void displaymenu() {
printf("\nBasic operations in a singly linked list...");
printf("\n\t 0. Create List");
printf("\n\t 1. Insert first");
printf("\n\t 2. Insert last");
printf("\n\t 3. Insert middle");
printf("\n\t 4. Delete first");
printf("\n\t 5. Delete last");
printf("\n\t 6. Delete middle");
printf("\n\t 7. Modify node");
printf("\n\t 8. View list");
printf("\n\t 9. Count list");
printf("\n\t 10. Show menu");
printf("\n\t 11. Exit");
}
node* getnode() {
node* newnode = (node*)malloc(sizeof(node));
return newnode;
}
node* getnode();
void createlist(node **headptr);
void insertfirst(node **headptr);
void insertlast(node **headptr);
void insertmiddle(node **headptr);
void deletefirst(node **headptr);
void deletelast(node **headptr);
void deletemiddle(node **headptr);
void modifynode(node *head);
void viewlist(node *head);
int countlist(node *head);
void releasenode(node *newnode);
void displaymenu();
int main() {
node *head = NULL;
int ch, count;
displaymenu();
while (1) {
printf("\n\nEnter the Choice? ");
fflush(stdin);
scanf("%d", &ch);
switch (ch) {
case 0:
createlist(&head);
break;
case 1:
insertfirst(&head);
break;
case 2:
insertlast(&head);
break;
case 3:
insertmiddle(&head);
break;
case 4:
deletefirst(&head);
break;
case 5:
deletelast(&head);
break;
case 6:
deletemiddle(&head);
break;
case 7:
modifynode(head);
break;
case 8:
viewlist(head);
break;
case 9:
count = countlist(head);
printf("Number of nodes in the list is: %d", count);
break;
case 10:
displaymenu();
break;
case 11:
printf("Exiting program...\n");
exit(0);
break;
default:
printf("Invalid option. Exiting program...\n");
exit(0);
}
}
}
void displaymenu() {
printf("\nBasic operations in a doubly linked list...");
printf("\n\t 0. Create List");
printf("\n\t 1. Insert first");
printf("\n\t 2. Insert last");
printf("\n\t 3. Insert middle");
printf("\n\t 4. Delete first");
printf("\n\t 5. Delete last");
printf("\n\t 6. Delete middle");
printf("\n\t 7. Modify node");
printf("\n\t 8. View list");
printf("\n\t 9. Count list");
printf("\n\t 10. Show menu");
printf("\n\t 11. Exit");
}
node* getnode() {
node* newnode = (node*)malloc(sizeof(node));
return newnode;
}