Už jsem to řazení vyřešil, chtěl bych poděkovat všem poděkovat za ochotu, hlavně JANO
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <iostream>
using namespace std;
int i;
int pole[10];
typedef struct seznam{
int data;
struct seznam *dalsi;
} SEZNAM;
SEZNAM *zarazka;
void vypis(const SEZNAM *ps) {
while (ps != NULL) {
printf("%i\n", ps->data);
ps = ps->dalsi;
}
}
void pridej(SEZNAM **prvniPrvekSeznamu, int prvek, SEZNAM *s) {
SEZNAM *s2, *s3, *s1;
s1 = s;
s2 = s;
cout << "gener " << prvek << endl;
if (s1 != NULL) cout << "s " << s1->data << endl;
if (s1 == NULL){
s1 = (SEZNAM *) malloc(sizeof(SEZNAM));
s1->data = prvek;
s1->dalsi = *prvniPrvekSeznamu;
*prvniPrvekSeznamu = s1;
}
else {
while (s1 != NULL) {
if (prvek < s1->data){
cout << prvek << " mensi " << s1->data << endl;
cout << " dalsi " << s1->dalsi << endl;
if (s1->dalsi == NULL){
cout << " pridat pred " << s1->data << endl;
s3 = (SEZNAM *) malloc(sizeof(SEZNAM));
s2 = s1->dalsi;
s3->data= prvek;
s3->dalsi= s2;
s1->dalsi = s3;
if (s1 == s){ // nastaveni prvniho prvku
cout << " prvni prvek je - " << s->data << endl;
*prvniPrvekSeznamu = s;
break;
}else{
cout << " prvni prvek je - " << s->data << endl;
*prvniPrvekSeznamu = s;
break;
}
}
s2 = s1;
s1 = s2->dalsi;
}
if (prvek >= s1->data){
if (s1 == s){ // pokud se jedna o prvni prvek v seznamu
cout << " pridat pred " << s->data << endl;
s = (SEZNAM *) malloc(sizeof(SEZNAM));
s->data = prvek;
s->dalsi = *prvniPrvekSeznamu;
cout << " prvni prvek je - " << s->data << endl; // nastaveni prvniho prvku
*prvniPrvekSeznamu = s;
break;
}
else{
cout << s1->data << " neni mensi - pridat " << prvek << endl;
s3 = (SEZNAM *) malloc(sizeof(SEZNAM));
s3->data = prvek;
s3->dalsi = s1;
s2->dalsi = s3;
*prvniPrvekSeznamu = s;
break;
}
}
}
}
cout << " " << endl;
while (s != NULL) {
cout << "vypis------ " << s->data << endl;
s = s->dalsi;
}
return;
}
void mazejvse(SEZNAM **prvniPrvekSeznamu) {
SEZNAM *ps;
ps = *prvniPrvekSeznamu;
while (ps) {
*prvniPrvekSeznamu = ps->dalsi;
free(ps);
ps = *prvniPrvekSeznamu;
}
getch();
}
int main(void) {
SEZNAM *s;
SEZNAM *s4;
srand(time(0));
s = NULL; /* Důleľité, v opačném případě by nebyl seznam ukončen. */ //tady ten seznam tam davas jako parametr pps a ten potrebujes aby ti to vratilo upravenej toho docilis tim &
cout << "Vygenerovane hodnoty v poli:" << endl;
cout << "---------------------------" << endl;
for (i = 0; i < 10; i++) {
cout << i << "\n" << endl;
cout << i << "---------------------------" << endl;
pole[i] = (rand() % 1001);
pridej(&s, pole[i], s);
}
puts("\n");
puts("Seznam:");
puts("----------------------------");
vypis(s);
mazejvse(&s);
return 0;
getch();
}