2016-10-29 5 views
-1

Ich versuche zu lernen, Linklisten anstelle von Arrays zu verwenden, und ich fühle mich wie ich das Konzept verstehe, aber ich kann nicht mein Programm ausführen ... Jede Hilfe wäre willkommen!Ich versuche zu lernen, wie Linklisten zu verwenden

#include <stdio.h> 
#include <stdlib.h> 


struct linkList{ 
    float val; 
    struct linkList *next; 
    }; 

int main() 
{ 
    struct linkList n1,n2,n3,*start; 

    n1.val=5.5; 
    n2.val=6.6; 
    n3.val=7.7; 
    start=&n1; 

    n1.next=&n2; 
    n2.next=&n3; 
    n3.next=0; 


    while(start.next!=0){ 
     printf("%f",start.val); 
     start=start.next; 
    } 
    return 0; 
} 
+1

Sie müssen den Pfeil Operator verwenden '->' wenn ein Zeiger wie 'Starten' verwenden. Sie sollten auch Druckvorgänge wie "printf" mit einem Zeilenumbruch beenden oder sich anderweitig um die Trennung der Zahlen kümmern. –

+0

'while (start! = 0) {printf ("% f ", start-> val); Start = Anfang-> nächstes; } ' – BLUEPIXY

Antwort

0

Ihr Problem gelöst. Bitte beachten Sie die folgenden C-Code-Schnipsel:

#include <stdio.h> 
#include <stdlib.h> 


struct linkList 
{ 
    float val; 
    struct linkList *next; 
}; 

int main(void) 
{ 
    struct linkList n1, n2, n3, *start; 

    n1.val = 5.5; 
    n2.val = 6.6; 
    n3.val = 7.7; 
    start = &n1; 

    n1.next = &n2; 
    n2.next = &n3; 
    n3.next = 0; 


    while(start->next != NULL) 
    { 
     printf("%f \n",start->val); 
     start=start->next; 
    } 

    return 0; 
} 
0

Try this:

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#include <stdbool.h> 

struct node { 
int data; 
int key; 
struct node *next; 
}; 

struct node *head = NULL; 
struct node *current = NULL; 

//display the list 
void printList() { 
struct node *ptr = head; 
printf("\n[ "); 

//start from the beginning 
while(ptr != NULL) { 
    printf("(%d,%d) ",ptr->key,ptr->data); 
    ptr = ptr->next; 
} 

printf(" ]"); 
} 

//insert link at the first location 
    void insertFirst(int key, int data) { 
    //create a link 
    struct node *link = (struct node*) malloc(sizeof(struct node)); 

    link->key = key; 
    link->data = data; 

    //point it to old first node 
    link->next = head; 

    //point first to new first node 
    head = link; 
    } 

    int main(){ 

    insertFirst(1,10); 
    insertFirst(2,20); 
    insertFirst(3,30); 
    insertFirst(4,1); 
    insertFirst(5,40); 
    insertFirst(6,56); 
    printList(); 
    return 0; 
    } 
Verwandte Themen