Programowanie proceduralne Laboratorium 21 – Lista
Transkrypt
Programowanie proceduralne Laboratorium 21 – Lista
Programowanie proceduralne Laboratorium 21 – Lista jednokierunkowa I. grupa R1IS2, zajęcia 07.01.2015, sala 207, godz. 16:00-17:30 Oceny: Zad1 → 3.0 Zad1 + Zad2 → 3.5 Zad1 + Zad2 + Zad3 → 4.0 Zad1 + Zad2 + Zad3 + Zad 4 → 4.5 Zad1 + Zad2 + Zad3 + Zad 4+ Zad5 → 5.0 Zadania 1. Dana jest struktura struct tnode { char value; struct tnode * next; }; a) Napisz funkcję, która dodaje element na początek listy jednokierunkowej. ? dodaj_na_poczatek (?,int val){ // alokacja pamięci na jeden element listy // uzupełnij obydwa pola utworzonego elementu // dodaj element na początek listy // pamiętaj o zachowaniu ciągłości pomiędzy kolejnymi elementami co funkcja powinna zwrócić } b) Napisz funkcję, która wypisze listę na ekran. c) W funkcji mian() utwórz wskaźnik do początku listy head. Wykorzystaj funkcję dodaj_na_poczatek, aby dodać do pustej listy elementy: 'a', 'c', 'v', 'f', 't'. Wypisz listę na ekran. 2. Napisz funkcję, która zwolni pamięć zajmowaną przez listę. 3. Napisz funkcję, która dodaje element na koniec listy. Wykorzystaj funkcję dodaj_na_koniec, aby dodać do pustej listy elementy: 'h', 'l', 'o', 'r', 'w'. Wypisz listę na ekran. void dodaj_na_koniec(?, int val){ // alokacja pamięci na jeden element listy // uzupełnij obydwa pola utworzonego elementu // jezeli lista pusta to dodaj element do pustej listy //w przeciwnym razie dodaj element na koniec niepustej listy (znajdz odpowienie miejsce) } 4. Napisz funkcję, która odwraca listę jednokierunkową. Przed: head-> ['f'] → ['d'] → ['u'] → ['i'] → Null Po: head-> ['i'] → ['u'] → ['d'] → ['f'] → Null 5. Napisz funkcję, która dodaje elementy do listy posortowanej rosnąco. Następne zajęcia: Laboratorium 22 1. 2. 3. 4. Lista jednokierunkowa: wyszukiwanie elementu, usuwanie elementu, sortowanie listy. Zastosowanie listy jednokierunkowej: kolejka, stos. Podział programu na pliki, makefile. Biblioteki dynamiczne i statyczne.