Pytania – kolokwium zaliczeniowe
1. Napisz funkcje, która usuwa element o numerze k z dynamicznej tablicy Tab o rozmiarze N zawierającej ile wskaźników na dynamiczne struktury (struct A {int p1;
char* p2;};). Każda struktura zawiera wskaźnik na dynamiczny „łańcuch”. Funkcja powinna sprawdzać, czy wartość k jest właściwa. Po usunięciu elementu funkcja powinna zmniejszyć tablicę za pomocą funkcji realloc do rozmiaru ile, jeżeli wartość wyrażenia N – ile jest równa wartości p. Zastosuj notację tablicową (indeksy) oraz zapis wskaźnikowy (jeden w komentarzu) do definicji ciała funkcji. Zdefiniuj wskaźnik na tę funkcję.
2. Podaj definicję statycznej tablicy tab1 zgodnej ze wskaźnikiem char* (*tab2)[3].
Przydziel pamięć na taką samą tablicę dynamiczną i jej dynamiczne elementy (dynamiczne tablice o elementach typu char) za pomocą operatora new oraz funkcji calloc w C++, gdy dany jest wskaźnik tab2. Wykonaj takie same elementy w tablicy tab1. Podaj, o ile zmieni się wartość wskaźnika tab2 po dodaniu 1 oraz wyrażenia tab1+1. Przypisz wartość np. „Wroclaw” do dowolnego elementu w tablicach tab1 i tab2, stosując notację tablicową oraz zapis wskaźnikowy.
3. Podaj wskaźnik Tab2 zgodny z tablicą char* Tab1[5]. Przydziel pamięć na taką samą tablicę dynamiczną i jej dynamiczne elementy wykorzystując wskaźnik Tab2 za pomocą operatora new oraz funkcji calloc w C++. Wykonaj takie same elementy w tablicy Tab1. Podaj, o ile zmieni się wartość wskaźnika Tab2 po dodaniu 1 oraz wartość wyrażenia Tab1+1. Przypisz wartość np. „Wroclaw” do dowolnego elementu w tablicach Tab1 i Tab2 stosując notację tablicową oraz zapis wskaźnikowy.
4. *Napisz funkcję Przestaw dla listy dwukierunkowej nieuporządkowanej, która wyszukuje na liście element zawierający wartość podaną w zmiennej Klucz. Jeśli znaleziona taki element, odłącz go od listy i dołącz na jej początek.
5. *Napisz funkcję Przestaw dla listy dwukierunkowej nieuporządkowanej, która wyszukuje na liście element zawierający wartość podaną w zmiennej Klucz. Jeśli znaleziona taki element, odłącz go od listy i dołącz na jej koniec.
Uwagi: Wykonaj p. 1-3 oraz p.4 lub p.5. Wszystkie funkcje z punktów 1,4 i 5 otrzymują i przekazują dane za pośrednictwem listy parametrów.