所以我有这样的问题,我希望你能帮帮我吧。我有这个链表,用户被要求输入数据。它适用于当我只使用一个集合,但我希望这个链表使用多于1个集合但我已经将头节点声明为全局的时候,我不知道如何安排它。问题是,当我在一个集合中输入数据时,它也保留了第二集合的输入。全局指针链表
这是链表的结构:
struct node//initializing a linked list
{
int info;
struct node*link;
}*start;
这是我建立了我的链接列表:
list* createList()
{
struct node*set;
set=(struct node*)malloc(sizeof(struct node));
if(start==NULL)
{
set->link=NULL;
start=set;
}
return set;
}
终于这是新增功能:
list* Add(list* set,int x)
{
struct node *tempnode;
if(start==NULL)
{
printf("Memory Allocation failed. Goodbye!");
exit(EXIT_FAILURE);
}
set=start;
printf("Please enter an input: \n");
scanf("%d",&x);
while(1)
{
while(x==set->info)
{
printf("Error! Please enter another integer: \n");
scanf("%d",&x);
set=start;
}
if(set->link!=NULL)
set=set->link;
else
break;
}
tempnode=(struct node*)malloc(sizeof(struct node));
tempnode->info=x;
tempnode->link=NULL;
set->link=tempnode;
printf("%d was created successfully!\n",x);
return set;
}
那么,目前对全局变量进行操作的每个函数都需要修改,以便对参数进行操作。 –
是的,但你能给我一些关于如何改变它们的提示吗? – user3141471