#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
struct NODE {
int number;
struct NODE *next;
struct NODE *next;
};
int search_value(struct NODE *llist, int num);
void append_node(struct NODE *llist, int num);
void display_list(struct NODE *llist);
void delete_node(struct NODE *llist, int num);
int main()
{
{
int num = 0;
int input = 1;
int retval = 0;
struct NODE *llist;
int input = 1;
int retval = 0;
struct NODE *llist;
llist = (struct NODE *) malloc(sizeof(struct NODE));
llist->number = 0;
llist->next = NULL;
llist->number = 0;
llist->next = NULL;
while (input != 0)
{
{
printf("\n-- Menu Selection --\n");
printf("0) Quit\n");
printf("1) Insert\n");
printf("2) Delete\n");
printf("3) Search\n");
printf("4) Display\n");
scanf("%d", &input);
printf("0) Quit\n");
printf("1) Insert\n");
printf("2) Delete\n");
printf("3) Search\n");
printf("4) Display\n");
scanf("%d", &input);
switch (input)
{
{
case 0:
default:
printf("Goodbye ...\n");
input = 0;
break;
default:
printf("Goodbye ...\n");
input = 0;
break;
case 1:
printf("Your choice: `Insertion'\n");
printf("Enter the value which should be inserted: ");
scanf("%d", &num);
append_node(llist, num);
break;
printf("Your choice: `Insertion'\n");
printf("Enter the value which should be inserted: ");
scanf("%d", &num);
append_node(llist, num);
break;
case 2:
printf("Your choice: `Deletion'\n");
printf("Enter the value which should be deleted: ");
scanf("%d", &num);
delete_node(llist, num);
break;
printf("Your choice: `Deletion'\n");
printf("Enter the value which should be deleted: ");
scanf("%d", &num);
delete_node(llist, num);
break;
case 3:
printf("Your choice: `Search'\n");
printf("Enter the value you want to find: ");
scanf("%d", &num);
if ((retval = search_value(llist, num)) == -1)
printf("Value `%d' not found\n", num);
else
printf("Value `%d' located at position `%d'\n", num, retval);
break;
printf("Your choice: `Search'\n");
printf("Enter the value you want to find: ");
scanf("%d", &num);
if ((retval = search_value(llist, num)) == -1)
printf("Value `%d' not found\n", num);
else
printf("Value `%d' located at position `%d'\n", num, retval);
break;
case 4:
printf("You choice: `Display'\n");
display_list(llist);
break;
printf("You choice: `Display'\n");
display_list(llist);
break;
} /* switch */
} /* while */
} /* while */
free(llist);
return (0);
}
return (0);
}
void display_list(struct NODE *llist)
{
while (llist->next != NULL)
{
printf("%d ", llist->number);
llist = llist->next;
}
{
while (llist->next != NULL)
{
printf("%d ", llist->number);
llist = llist->next;
}
printf("%d", llist->number);
}
}
void append_node(struct NODE *llist, int num)
{
while (llist->next != NULL)
llist = llist->next;
{
while (llist->next != NULL)
llist = llist->next;
llist->next = (struct NODE *) malloc(sizeof(struct NODE));
llist->next->number = num;
llist->next->next = NULL;
}
llist->next->number = num;
llist->next->next = NULL;
}
void delete_node(struct NODE *llist, int num)
{
struct NODE *temp;
temp = (struct NODE *) malloc(sizeof(struct NODE));
{
struct NODE *temp;
temp = (struct NODE *) malloc(sizeof(struct NODE));
if (llist->number == num)
{
/* remove the node */
temp = llist->next;
free(llist);
llist = temp;
} else
{
while (llist->next->number != num)
llist = llist->next;
{
/* remove the node */
temp = llist->next;
free(llist);
llist = temp;
} else
{
while (llist->next->number != num)
llist = llist->next;
temp = llist->next->next;
free(llist->next);
llist->next = temp;
}
}
free(llist->next);
llist->next = temp;
}
}
int search_value(struct NODE *llist, int num)
{
int retval = -1;
int i = 1;
{
int retval = -1;
int i = 1;
while (llist->next != NULL)
{
if (llist->next->number == num)
return i;
else
i++;
{
if (llist->next->number == num)
return i;
else
i++;
llist = llist->next;
}
}
return retval;
}
}
Output :
-- Menu Selection -- 0) Quit 1) Insert 2) Delete 3) Search 4) Display Enter your option : 1 Your choice: `Insertion' Enter the value which should be inserted: 34 Enter your option : 4 You choice: `Display' 0 34 Enter your option : 1 Your choice: `Insertion' Enter the value which should be inserted: 60 Enter your option : 3 Your choice: `Search' Enter the value you want to find: 60 Value `60' located at position `2' Enter your option : 0 Goodbye ...
0 Comments