Replies
Welcome, guest
Join CrazyEngineers to reply, ask questions, and participate in conversations.
CrazyEngineers powered by Jatra Community Platform
-
@vinora-HBFblK • Aug 26, 2009
-
@samaira-P4RsEf • Aug 26, 2009
-
@pradeep-agrawal-rhdX5z • Aug 26, 2009
Re: help in a program
I feel you must have given this a try. Could you post your code and let us know where you are stuck.samairacan anyone give me the program for linked list with the foll conditions:
1.first node is created
2.we have to ask the user if he wish to add another data
3.display
-Pradeep -
@durga-TpX3gO • Aug 26, 2009
Re: help in a program
😁 I have nothing to say more to Pradeep - C Guru here. But yes as a kick start you must be knowing the concepts of linked lits, first try understanding pointers and how memory locations are accesesed with pointers.
Then linked list is all about playing around with these pointers. -
@itchap-RKJQDB • Aug 26, 2009
Re: help in a program
# include<stdio.h>
Check this program. I think this will help you.
# include<conio.h>
#include<malloc.h>
#include<stdlib.h>
struct node
{
int data;
struct node *link;
};
struct node *insert(struct node *p, int n)
{
struct node *temp;
/* if the existing list is empty then insert a new node as the
starting node */
if(p==NULL)
{
p=(struct node *)malloc(sizeof(struct node)); /* creates new node
data value passes as parameter */
if(p==NULL)
{
printf("Error\n");
exit(0);
}
p-> data = n;
p-> link = p; /* makes the pointer pointing to itself because it
is a circular list*/
}
else
{
temp = p;
/* traverses the existing list to get the pointer to the last node of
it */
while (temp-> link != p)
temp = temp-> link;
temp-> link = (struct node *)malloc(sizeof(struct node)); /*
creates new node using
data value passes as
parameter and puts its
address in the link field
of last node of the
existing list*/
if(temp -> link == NULL)
{
printf("Error\n");
exit(0);
}
temp = temp-> link;
temp-> data = n;
temp-> link = p;
}
return (p);
}
void printlist ( struct node *p )
{
struct node *temp;
temp = p;
printf("The data values in the list are\n");
if(p!= NULL)
{
do
{
printf("%d\t",temp->data);
temp=temp->link;
} while (temp!= p);
}
else
printf("The list is empty\n");
}
void main()
{
clrscr();
int n;
int x;
struct node *start = NULL ;
printf("Enter the nodes to be created \n");
scanf("%d",&n);
while ( n -- > 0 )
{
printf( "Enter the data values to be placed in a node\n");
scanf("%d",&x);
start = insert ( start, x );
}
getch();
printf("The created list is\n");
printlist ( start );
getch();
}