Here is a link list program this program used by different function. If you find any compilation error please do comment or email me
/* Delete a Node From a Simple Linked List */
/* Dllinklistfrmnode.C */
/* http://native-code.blogspot.com */
# include <stdio.h>
# include <malloc.h>
struct link
{
char info[20];
struct link *next;
};
int i;
int number ;
struct link start, *previous;
void Delete_node(struct link *);
void creat_node(struct link *);
/* Create linked list */
void creat_node(struct link *node)
{
char ch;
i = 0;
start.next = NULL;
// Empty list
node = &start;
// Point to the start of the list
printf("\n Input choice n for break: ");
ch = getchar();
while(ch != 'n')
{
node->next = (struct link* ) malloc(sizeof(struct link));
node = node->next;
fflush(stdin);
printf("\n Input the node: %d: ", i+1);
gets(node->info);
node->next = NULL;
printf("\n Input choice n for break: ");
ch = getchar();
i++;
}
printf("\n Total nodes = %d", i);
node = start.next;
printf("\n Created list is as follows:\n");
while (node)
{
printf("\n 0x%x", node);
printf(" %s", node->info);
node = node->next;
}
}
/* Removing a node */
void Delete_node(struct link *node)
{
int node_number = 1;
int delete_node;
node = start.next;
previous = &start;
printf("\n Input node number you want to delete:");
scanf(" %d", &delete_node);
while(node)
{
if((node_number) == delete_node)
{
previous->next = node->next;
free(node);
break ;
}
else
{
node = node->next;
previous = previous->next;
}
node_number ++;
}
/* Display the list */
node = start.next;
printf("\n After deleting a node list is as follows:\n");
while (node)
{
printf("\n 0x%x", node);
printf(" %s", node->info);
node = node->next;
}
}
/* Function main */
void main()
{
struct link *node = (struct link *) malloc(sizeof(struct link));
creat_node(node);
Delete_node(node);
}
/* http://native-code.blogspot.com */
Post a Comment