struct elem { int dane; elem *nast; };
struct elemW { int expo; int coef; elemW* nast; };
//rozwiazanie do testowania
void azim(elem* &lis, int dana) { elem* pam = lis; if (lis == NULL) { lis = new elem; lis->dane = dana; lis->nast = NULL; } else { while (lis->nast != NULL) { lis = lis->nast; } elem* n = new elem; n->dane = dana; n->nast = NULL; lis->nast = n; lis = pam; } }
//rozwiazanie do testowania
void azimW(elemW* &lis, int wyk, int a) { elemW* pam = lis; if (lis == NULL) { lis = new elemW; lis->expo = wyk; lis->coef = a; lis->nast = NULL; } else { while (lis->nast != NULL) { lis = lis->nast; } elemW* n = new elemW; n->expo = wyk; n->coef = a; n->nast = NULL; lis->nast = n; lis = pam; } }
void insert(int x, int i, elem *&lista) { elem* e = new elem; e->dane = x; elem* wsk = lista; if (wsk != NULL) { for (int j = 0; j < i - 1; j++) { wsk = wsk->nast; } e->nast = wsk->nast; wsk->nast = e; } else { cout << "b" << endl; } }
int remove(int i, elem *&lista) { elem* d; elem* wsk = lista; if (wsk != NULL) { for (int j = 0; j < i - 2; j++) { wsk = wsk->nast; } d = wsk->nast; wsk->nast = wsk->nast->nast; } else { cout << "b" << endl; }
delete d; }
int read(int i, elem* lista) { elem* wsk = lista; if (wsk != NULL) { for (int j = 0; j < i; j++) { wsk = wsk->nast; } return wsk->dane; } }
int size(elem* lista) { int liosc = 0; while (lista != NULL) { lista = lista->nast; liosc++; }
return liosc; }
void print(elem *lista) { while (lista != NULL) { cout << lista->dane << endl; lista = lista->nast; } }
void printW(elemW* lista) { while (lista != NULL) { cout << "Wyk: " << lista->expo << endl; cout << lista->coef << endl; lista = lista->nast; } }
elem* UNION(elem* L1, elem* L2) { elem* tym = L1; while (tym->nast != NULL) { tym = tym->nast; } tym->nast = L2; return L1; }
elem* search(int x, elem *lista) { while (lista != NULL) { if (lista->dane == x) { return lista; } lista = lista->nast; } return NULL; }
void destroy(elem *&lista) { elem*tym; while (lista != NULL) { tym = lista; lista = lista->nast; delete tym; } }
elem* MIN(elem *lista) { elem* min = NULL; int wmin = 32100; //zminic na zakres int while (lista != NULL) { if (wmin > lista->dane) { wmin = lista->dane; min = lista; } lista = lista->nast; } return min; }
void rev(elem* &lista) { if (lista != NULL) { elem* zap = lista; elem* tym; lista = lista->nast; zap->nast = NULL; while (lista->nast != NULL) { tym = lista; lista = lista->nast; tym->nast = zap; zap = tym; } lista->nast = zap; } }
elemW* polyadd(elemW* w1, elemW* w2) { elemW* w = NULL; while (w1 != NULL && w2 != NULL) { if (w1->expo == w2->expo) { azimW(w, w1->expo, w1->coef + w2->coef); w1 = w1->nast; w2 = w2->nast; } else { if (w1->expo > w2->expo) { azimW(w, w1->expo, w1->coef); w1 = w1->nast; } else { azimW(w, w2->expo, w2->coef); w2 = w2->nast; } } } while (w1 != NULL) { azimW(w, w1->expo, w1->coef); w1 = w1->nast; } while (w2 != NULL) { azimW(w, w2->expo, w2->coef); w2 = w2->nast; } return w; }
void Fareya(int n) { ulamek* pocz = new ulamek; pocz->licz = 0; pocz->mian = 1; pocz->nast = NULL; if (n > 0) { ulamek* tym = new ulamek; pocz->nast = tym; tym->licz = 1; tym->mian = 1; tym->nast = NULL; bool powt = true; ulamek* t = NULL; while (powt) { powt = false; tym = pocz; while (tym->nast != NULL) { if (tym->mian + tym->nast->mian <= n) { powt = true; t = new ulamek; t->licz = tym->licz + tym->nast->licz; t->mian = tym->mian + tym->nast->mian; t->nast = tym->nast; tym->nast = t; } tym = tym->nast; } } } while (pocz) { cout << pocz->licz << "/" << pocz->mian << endl; pocz = pocz->nast; } }
|