Ich versuche, einen Brief mit Datenteil zu vergleichen, um ihn in alphabetischer Reihenfolge in verknüpfte Liste einzufügen. Was ist daran falsch?Verknüpfte Liste und Zeiger auf unvollständige Klassenart
typedef struct{
char data;
struct list_node *next;
}list_node;
typedef struct{
list_node *head;
}list;
Ich versuche folgendes zu tun:
void input_char(list *my_list, char x)
{
list_node *node = (list_node*)calloc(1, sizeof(list_node));
list_node *tmp = my_list->head;
node->data = x;
if (tmp == NULL)
my_list->head = tmp;
else if (tmp->next == NULL)
{
if (x < tmp->data)
{
node->next = tmp;
my_list->head = node;
}
else
tmp->next = node;
tmp = tmp->next;
}
else
{
if (x < tmp->next->data)
// This following line says "Error, Pointer to incomplete type is not allowed.
{
node->next = tmp->next;
tmp->next = node;
}
tmp = tmp->next;
}
}
C unterstützt keine Klassen. Wenn Sie als C++ kompilieren, ändern Sie das Tag. Siehe [fragen]. Welche Fehlermeldung erhalten Sie? Woher? – Olaf
@ Snađошƒаӽ: In C++ ist ein 'struct' ein Klassentyp. Hast du den Titel gelesen ("Verknüpfte Liste und Zeiger auf unvollständige ** Klasse ** Typ")? – Olaf
Ein Typ. Alias (wie mit dem Schlüsselwort 'typedef} eingeführt) ist nicht dasselbe wie ein Struktur-Tag (der Name einer Struktur). So funktioniert 'struct some_typedef_name * foobar' nicht, solange das Struktur-Tag nicht den gleichen Namen wie der Typ-Alias hat. –