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.