Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Knoten beim einfügen in eine Liste sortieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Knoten beim einfügen in eine Liste sortieren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
dghst
Grünschnabel


Dabei seit: 15.01.2017
Beiträge: 5

Knoten beim einfügen in eine Liste sortieren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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;
}
06.02.2017 21:00 dghst ist offline Beiträge von dghst suchen Nehmen Sie dghst in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
06.02.2017 21:25 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Theoretische Informatik » Knoten beim einfügen in eine Liste sortieren