Verkettete Liste



  • Hallo!

    Ich möchte eine einfache Verkettete Liste schreiben, und habe mich dabei an einem Beispiel orientiert, das jedoch in C++ geschrieben wurde. Nur, wenn ich dieses compiliere, erhalte ich eine ganze Menge Fehlermeldungen, von denen einige kommentiert sind. Wäre echt super, wenn mir jemand erklären könnte, wie die zustande kommen, und wie ich sie am besten behebe. Danke im voraus!

    #include <stdio.h>
    
    struct Knoten
     {
       int alter;
       char name[20];
       Knoten* Nachfolger;
    };
    
    Knoten *letztesElement();
    void neuesElement(char* name, int alter);
    Knoten listenkopf;  //parse Error before listenkopf
    
    void main()
     {
       printf("Name: ");
       scanf("%s", listenkopf.name); //Zunächst der Listenkopf
       printf("Alter: ");
       scanf("%d", listenkopf.alter);
    
       int alter = 0;
       char name[20];
        while(alter != -1)   //alter undeclared (first use in this function)
         {
     	  printf("Name: ");
          scanf("%s", name);
          printf("Alter: ");
          scanf("%d", &alter);
           if(alter != -1)
            {
    	     neuesElement(name, alter);
    	    }
          }
       }
    
    void neuesElement(char* name, int alter)
     {
       Knoten* knoten = new Knoten; //parse Error before Knoten, new undeclared (first use in this function)
       knoten->name = name;
       knoten->alter = alter;
       knoten->Nachfolger = NULL;
       letztesElement->Nachfolger = knoten;
    }
    
    Knoten* letztesElement() //parse Error befor *
     {
       Knoten* knoten = &listenkopf; //Knoten undeclared (first use in this function)
        while(knoten->Nachfolger != NULL)
         {
    	   knoten =  knoten->Nachfolger;
         }
       return knoten;
      }
    


  • Müßte das in ANSI C nicht so aussehen?

    typedef struct NODE node;
    
    struct NODE
    { 
      int alter;
      char name[20]; 
      node *next; 
    };
    
    //...
    

    😕



  • entweder machst du das so

    typedef struct {
    //alles was nach Knoten gehört
    } Knoten;
    

    oder du schreibst vor jedes auftretende Knoten einfach struct

    btw.
    http://www.c-plusplus.net/forum/viewtopic.php?t=39346


Anmelden zum Antworten