Zdravím, předem bych chtěl poděkovat všem za jakoukoliv snahu. Ve škole jsem dostal za úkol udělat program v C++ na řazení celých kladných čísel metodou
Radix sort. V programu se musí využít seznam.
Tímto úkolem se již zabývám druhý den a zdá se mi, že se v tom čím dál víc zamotávám. Ze začátku jsem převzal kód z
linuxsoft.cz a snažil se ho upravit. Našel jsem dokonce knihu na
books.google.com, kde se tato problematika popisuje, ale pořad mi něco uniká a nechce to pracovat, ať to zkouším, jak to chci.
Nejvíce by mi pomohlo, kdyby mi někdo poradil, jak mam vytvořit seřazený seznam. Jinak řečeno, bych potřeboval, aby se mi vygenerovalo číslo, zavolala se funkce přidat, kde by se spustil nějaký cyklus, který by porovnával čísla, až by našel místo kam to číslo patří, seznam by se rozpojil a číslo bylo vnořené.
Přidávám kód, se kterým jsem to zkoušel udělat:
void pridej(SEZNAM **pps, int prvek, SEZNAM *s) {
SEZNAM *s2, *s3;
s2 = s;
cout << "gener " << prvek << endl;
if (s != NULL) cout << "s " << s->data << endl;
if (s == NULL){
s = (SEZNAM *) malloc(sizeof(SEZNAM));
s->data = prvek;
s->dalsi = *pps;
*pps = s;
}
else {
while (s != NULL) {
if (s->data < prvek){
cout << s->data << " mensi " << prvek << endl;
}
else if (s->data >= prvek){
cout << s->data << " neni mensi - pridat " << prvek << endl;
s3 = (SEZNAM *) malloc(sizeof(SEZNAM));
s3->data = prvek;
s3->dalsi = s2;
s2->dalsi = s3;
return;
}
s2 = s;
s = s->dalsi;
}
}
cout << " " << endl;
while (s != NULL) {
cout << "vypis------ " << s->data << endl;
s = s->dalsi;
}