1. Creation & Deletion of Lists Using Pointers
1(a). Singly Linked List – Create & Delete an Element
1(b). Doubly Linked List – Create & Delete
1(c). Circular Singly Linked List – Create & Delete
2. Common Elements of Two Singly Linked Lists
3. Sort a Singly Linked List & Insert an Element
struct node {
int data;
struct node *next;
};
struct node* insert(struct node* head, int data) {
struct node* newnode = malloc(sizeof(struct node));
newnode->data = data;
newnode->next = head;
return newnode;
}
void sort(struct node* head) {
struct node *i, *j;
int temp;
for (i = head; i != NULL; i = i->next) {
for (j = i->next; j != NULL; j = j->next) {
if (i->data > j->data) {
temp = i->data;
i->data = j->data;
j->data = temp;
}
}
}
}
struct node* insert_sorted(struct node* head, int data) {
struct node* newnode = malloc(sizeof(struct node));
newnode->data = data;
if (head == NULL || data < head->data) {
newnode->next = head;
return newnode;
}
struct node* temp = head;
while (temp->next && temp->next->data < data xss=removed>next;
newnode->next = temp->next;
temp->next = newnode;
return head;
}
void display(struct node* head) {
while (head) {
printf("%d -> ", head->data);
head = head->next;
}
printf("NULL\n");
}
int main() {
struct node* head = NULL;
int x;
printf("Enter list elements (-1 to stop): ");
while (1) {
scanf("%d", &x);
if (x == -1) break;
head = insert(head, x);
}
sort(head);
printf("Sorted List: ");
display(head);
printf("Enter element to insert: ");
scanf("%d", &x);
head = insert_sorted(head, x);
printf("Updated List: ");
display(head);
return 0;
}
Comments
Leave a Comment
Your email address will not be published. Required fields are marked *