그래서이 문제가있어서 그걸 가지고 나를 도울 수 있기를 바랍니다. 이 연결된 목록이 있고 사용자가 데이터를 입력하라는 메시지가 표시됩니다. 그것은 하나의 집합을 사용할 때 작동하지만이 연결된 목록이 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