Knoten beim einfügen in eine Liste sortieren

Neue Frage »

Auf diesen Beitrag antworten »
dghst Knoten beim einfügen in eine Liste sortieren

Meine Frage:
Guten Abend, ich habe ein Programm zur Verwaltung von einem Periodensystem geschrieben, es funktioniert soweit alles, bis auf, dass ich ich die Elemente gerne nach Ordnungszahl sortiert hätte.

Meine idee wäre es über qsort bei addKnoten zu lösen, allerdings habe ich Probleme dabei, kann mir jemand helfen?

lG

Meine Ideen:
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

typedef char string[30];
typedef struct Knoten {
string name;
string Symbol;
string Ordnungszahl;
struct Knoten *nachf;
} Knoten;

typedef Knoten * Liste;

Knoten * zeigerAufNeuenKnoten( string name, string Symbol, string Ordnungszahl, Knoten *rest )
{
Knoten *neu = malloc( sizeof( Knoten ) );

strcpy( neu->name, name );
strcpy( neu->Symbol, Symbol );
strcpy( neu->Ordnungszahl, Ordnungszahl );

neu->nachf = rest;

return neu;
}


Liste addKnoten( Liste liste, string name, string Symbol, string ordnungszahl )
{
liste = zeigerAufNeuenKnoten( name, Symbol, ordnungszahl, liste );

return liste;
}


void printKnoten( Knoten *knoten )
{
printf("%s, %s, %s\n", knoten->name, knoten->Symbol, knoten->Ordnungszahl);
}


void printListe( Liste liste )
{

while( liste != NULL )
{
printKnoten( liste );
liste = liste->nachf;
}
}

int main( void )
{
Liste liste = NULL;

liste = addKnoten( liste, "Aluminium", "Al", "13" );
liste = addKnoten( liste, "Calium", "Ca", "20" );
liste = addKnoten( liste, "Chlor", "Cl", "17" );
liste = addKnoten( liste, "Flor", "F", "9" );
liste = addKnoten( liste, "Magnesium", "Mg", "12" );


printListe( liste );

printf("\n");

getch();
return 0;
}
 
Auf diesen Beitrag antworten »
eulerscheZahl

Die Ordnungszahl als string? Für so etwas wurden ints erfunden.

Wenn du sortiert einfügst, bleibt die Liste ja auch immer sortiert. Quicksort macht nur Sinn, wenn alles wild durcheinander ist.

Einfügen in eine sortierte Liste hatten wir hier schonmal: einfach verkettete Listen in C -Programmhilfe
Wenn du damit nichts anfangen kannst, gerne nochmal nachfragen.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »