Zad 1.
Napisz funkcję, która dodaje elementy do listy jednokierunkowej. Jeżeli element istnieje, element nie będzie dodany. Lista po dodaniu powinna być posortowana malejąco. void dodajfstruct list **pierwszy, int a)
Zad 2.
Napisz funkcję, która zamieni pierwszy i ostatni element w liście dwukierunkowej. void zamien(struct list **pierwszy)
Zad 3.
3.1 Sprawdź, czy poniższa funkcję dodającą element do drzewa BST działa poprawnie. Jeżeli zawiera błędy, wskaż co należy poprawić.
3.2 Odpowiedz, czy możliwa jest zmiana funkcji dodaj(), tak aby struktura zawierała pole rodzic i było one aktualizowane. Przy czym, nie zmienialibyśmy argumentów jakie przyjmuje funkcja dodaj(). Jeżeli tak, to zaproponuj jej kod.
void dodaj(struct tree **korzen, int a)
if(korzeń)
{
struct tree *nowy =(struct tree *)malloc(sizeof(struct tree *)); nowy->klucz = i; nowy->lewy = NULL; nowy->prawy = NULL;
else
{If(a>korzen->klucz)
dodaj(korzen->prawy, a) ;
else
dodaj(korzen->lewy,a);
)
}
Zad 4.
Napisz kod funkcji, która usunie element z drzewa. (Jeżeli element ma dwóch synów, fizycznie usuwamy następnika).