Link-Liste mit Funktion
Ich versuche zu schaffen, ein Programm wird erstellt, und die Anzeige verlinkten Liste.
Nun ich habe Probleme mit meinem create_list () - Funktion, die es erstellt keine Liste.
Was ich falsch mache ?
Sorry für schlechtes Englisch :/
CODE :
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int data;
struct node *next;
} node;
int main(){
node *start;
start = NULL;
int a,n,on = 1;
while(on == 1){
printf(" \n choose: \n 1 --- create list \n 2 --- display list \n");
scanf("%d",&n);
switch(n){
case 1:
printf("-------------------------------------------- \n");
printf(" Enter the elements. The last element is 0 \n");
printf("-------------------------------------------- \n");
Create_list();
Display_list(start);
break;
case 2:
Display_list(start);
break;
}
}
system("pause");
return 0;
}
void Display_list(node *curr){
if(curr){
while (curr->next != NULL){
printf("%d \n",curr->data);
curr=curr->next;
}
} else {
printf(" \n The list is not created ! \n");
}
}
void Create_list(node *curr){
int i;
node *start = NULL;
if (start == NULL){
curr = (node *)malloc(sizeof(node));
start=curr;
while ( i != 0){
scanf("%d",&i);
if(i == 0){
curr->next=NULL;
curr=start;
} else {
curr->data=i;
curr->next=(node *)malloc(sizeof(node));
curr=curr->next;
}
}
} else {
printf(" \n list already exists ! \n");
}
}
- Ihr Einzug weh meine Augen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Funktion Create_List(Knoten *curr) braucht einige Argumente. Sie werden nicht übergeben, die Argumente von main(). Haben Sie Ihren code kompilieren?
Die Funktion Create_List(Knoten *curr) braucht einige Argumente. Sie werden nicht übergeben, die Argumente von main(). Haben Sie Ihren code kompilieren?
Was Sie tun sollten, ist nehmen Sie einen Knoten in main gespeichert wird Standort des ersten Knoten der verketteten Liste.
Den
start
imCreate_list
ist nicht im Zusammenhang mit derstart
immain
. Da beide lokale, um Ihre jeweiligen Funktionen, man kann nicht einmal sehen, die andere. Also Einstellungstart
nicht eigentlichstart
, wenn man so will. 😛Müssen Sie entweder mitbringen
start
außerhalb der Funktionen und machen es Globale oder pass&start
(alsnode**
) vonmain
inCreate_list
und ändern*start
um die Liste gesetzt Kopf. (Die letztere ist im Allgemeinen vorzuziehen, da globals sind oft Probleme warten zu passieren.)