dghst
Grünschnabel
Dabei seit: 15.01.2017
Beiträge: 5
 |
|
| 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;
}
|
|