#include #include using namespace std; struct lista { int liczba; struct lista *nast; }; struct lista* wstaw_na_koniec(struct lista *p, int l) { struct lista *element = new struct lista; element->liczba = l; element->nast = NULL; if (p==NULL) return element; struct lista *tmp = p; while(tmp->nast!=NULL) tmp = tmp->nast; tmp->nast = element; return p; }; struct lista* wstaw_na_poczatek(struct lista *p, int l) { struct lista *element = new struct lista; element->liczba = l; element->nast = p; return element; } struct lista* wstaw(struct lista *p, int l) { struct lista *element = new struct lista; element->liczba = l; element->nast = NULL; if(p==NULL) return element; if(element->liczba < p->liczba) { element->nast = p; return element; } struct lista *tmp = p; while(tmp->nast && (tmp->nast)->liczbaliczba) tmp = tmp->nast; element->nast = tmp->nast; tmp->nast = element; return p; } void wypisz(struct lista *p) { struct lista *tmp = p; while(tmp!=NULL) { cout<liczba<<" "; tmp = tmp->nast; } } struct lista* usun(struct lista *p, int x) { if (!p) return p; struct lista *tmp, *el; if (p->liczba == x) { tmp = p->nast; delete p; p = tmp; } tmp = p; while(tmp->nast && (tmp->nast)->liczba!=x) tmp = tmp->nast; if(tmp->nast) { el = tmp->nast; tmp->nast = (tmp->nast)->nast; delete el; } return p; } struct lista* usun_wszystkie(struct lista *p, int x) { if (!p) return p; struct lista *tmp, *el; while (p && p->liczba == x) { tmp = p->nast; delete p; p = tmp; } struct lista *tmp2 = p; tmp = p; while(tmp->nast) { while(tmp->nast && (tmp->nast)->liczba!=x) tmp = tmp->nast; if(tmp->nast) { el = tmp->nast; tmp->nast = (tmp->nast)->nast; delete el; } } return p; } float srednia(struct lista *p) { struct lista *tmp = p; float s = 0; int n = 0; if (!tmp) return 0; while(tmp) { s += tmp->liczba; n++; tmp = tmp->nast; } s /= n; return s; } bool srednia2(struct lista *p, float *s) { struct lista *tmp = p; *s = 0; int n = 0; if (!tmp) return false; while(tmp!=NULL) { (*s) += tmp->liczba; n++; tmp = tmp->nast; } (*s) /= n; return true; } int main() { struct lista *pierwszy=NULL; int x; for(int i=0; i<20; i++) pierwszy = wstaw_na_koniec(pierwszy, rand()%10); wypisz(pierwszy); cout<