21bce1716 - DSA LAB ASSIGNMENT
21bce1716 - DSA LAB ASSIGNMENT
NAME:GARVIT AGRAWAL
REG NO:21BCE1716
Q:
1) Write a program to create a singly linked list and implement functions to perform the
following operations.
a) insert 32 at location 3
21 14 32 20 51 61 30
9 21 14 32 20 51 61 30
9 21 14 32 20 51 61 30 46
d) delete a 32
9 21 14 20 51 61 30 46
9 14 20 51 61 30 46
f) search 51
51 is available
g) search 90
90 is not available
ANSWER:
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
};
int size=0;
while(node!=NULL){
node = node->next;
size++;
return size;
newNode->data = data;
newNode->next = NULL;
if(n < 0 || n > size)
newNode->next = *head;
*head = newNode;
else
while(--n)
temp=temp->next;
newNode->next= temp->next;
temp->next = newNode;
}
void inBegin(struct Node** head_ref, int new_data) {
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
if (prev_node == NULL) {
return;
new_node->data = new_data;
new_node->next = prev_node->next;
prev_node->next = new_node;
}
void inEnd(struct Node** head_ref, int new_data) {
new_node->data = new_data;
new_node->next = NULL;
if (*head_ref == NULL) {
*head_ref = new_node;
return;
last->next = new_node;
return;
*head_ref = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != key) {
prev = temp;
temp = temp->next;
prev->next = temp->next;
free(temp);
current = current->next;
return 0;
return;
if(n == 1){
*head = (*head)->next;
free(temp);
return;
while (--n)
previous = temp;
temp = temp->next;
}
previous->next = temp->next;
free(temp);
node = node->next;
// Driver program
int main() {
inBegin(&head, 30);
inBegin(&head, 61);
inBegin(&head, 51);
inBegin(&head, 20);
inBegin(&head, 14);
inBegin(&head, 21);
printList(head);
printf("\n");
printf("\n");
inBegin(&head,9);
printList(head);
printf("\n");
inEnd(&head, 46);
printList(head);
printf("\n");
deletePosition(&head, 1);
printList(head);
int item = 51 ;
if (searchNode(&head, item)) {
} else {
item = 90;
if (searchNode(&head, item)) {
} else {
}
}
Output window: