lab2 (PDF)




File information


Author: wchocianowicz

This PDF 1.5 document has been generated by Microsoft® Word 2013, and has been sent on pdf-archive.com on 24/11/2017 at 17:52, from IP address 217.153.x.x. The current document download page has been viewed 280 times.
File size: 942.12 KB (2 pages).
Privacy: public file










File preview


Rok akademicki 2017/18

Informatyka - S1 - semestr 3
Struktury danych i złożoność obliczeniowa

Laboratorium 2 – Dwukierunkowa lista cykliczna

Celem zadania jest implementacja słownika w postaci dynamicznej dwukierunkowej listy cyklicznej.
Implementacja nie może odwoływać się do typu tablicowego, lecz musi się posługiwać wskaźnikami
(referencjami do kolejnych węzłów listy).
Każdy z węzłów listy posiada następujące składowe:
 pole składowej kluczowej typu całkowitego (int);
 pole typu double;
 pole typu char;
 wskaźnik na węzeł będący następnikiem;
 wskaźnik na węzeł będący poprzednikiem.
Składowa kluczowa węzła będącego pierwszym węzłem listy (o ile lista nie jest pusta) jest najmniejszą
spośród składowych kluczowych wszystkich węzłów znajdujących się w liście, tzn. elementy listy są
zawsze uporządkowane rosnąco ze względu na wartość składowej kluczowej;
Klucze (składowe kluczowe) są unikalne w ramach listy.
Należy stworzyć funkcję realizujące:
1) wstawienie do listy nowego elementu (uwzględnić przypadek, w którym węzeł o zadanej
wartości składowej kluczowej już znajduje się w liście, należy wtedy zasygnalizować błąd);
funkcja ustawia pole typu double na losowe wartości, zaś pole typu char na wartość ‘T’;
2) wstawienie do listy X nowych elementów o wygenerowanych losowo i różnych wartościach
składowych kluczowych z zakresu 99 do 99999 (wartość X podana jako argument funkcji);
3) wyszukanie w liście elementu o podanej jako argument wartości składowej kluczowej (wraz z
obsługą przypadku, w którym element nie istnieje);
4) usunięcie z listy elementu o podanej jako argument wartości składowej kluczowej
(uwzględniające obsługę przypadku, w którym taki element nie istnieje);
5) prezentacja wartości składowych kluczowych pierwszych Y (wartość Y jest argumentem
funkcji prezentacji) węzłów znajdujących się w liście (począwszy od składowej kluczowej
węzła będącego czołem listy);
6) prezentacja wartości składowych kluczowych ostatnich Z (wartość Z jest argumentem funkcji
prezentacji) węzłów znajdujących się w liście (począwszy od składowej kluczowej węzła
będącego ogonem (ostatnim węzłem) listy);
7) wypisywanie liczby węzłów znajdujących się na liście (można utworzyć dodatkową zmienną
do przechowywania liczby elementów listy);
8) usuwanie wszystkich elementów listy;
Listę można zaimplementować strukturalnie (C) lub obiektowo (C++);
Na liście argumentów każdej z wymienionych funkcji mogą się pojawić wyłącznie:
o referencja (wskaźnik) do pierwszego węzła (czoła) listy (tylko w przypadku implementacji
strukturalnej);
o wartość składowej kluczowej - za wyjątkiem funkcji wstawiania X elementów, która zamiast
wartości składowej kluczowej zawiera liczbę elementów do wylosowania (w przypadku
implementacji strukturalnej i obiektowej) oraz funkcji prezentacji zawierających dodatkowo
liczbę elementów do wyświetlenia;
Wszystkie funkcje powinny obsługiwać błędy (np. funkcja prezentacji powinna wypisywać
odpowiedni komunikat, gdy lista jest pusta lub nie istnieje).

Program po uruchomieniu wczytuje plik wejściowy inlab02.txt.
Plik inlab02.txt zawiera w pierwszej linii kolejno liczbę elementów do wylosowania X, a
następnie wartości pięciu kluczy k1, k2, k3, k4, k5.
Następnie wywoływana jest sekwencja funkcji (dalej w funkcji main()):
 czas start;
 zainicjuj listę;
 wyszukanie klucza k1;
 wstawienie X elementów do listy;
 wypisz liczbę węzłów w liście;
 prezentacja wartości kluczowych pierwszych 20 węzłów począwszy od czoła listy;
 wstaw element o wartości klucza k2;
 prezentacja wartości kluczowych pierwszych 20 węzłów począwszy od czoła listy;
 wstaw element o wartości klucza k3;
 prezentacja wartości kluczowych pierwszych 20 węzłów począwszy od czoła listy;
 wstaw element o wartości klucza k4;
 prezentacja wartości kluczowych pierwszych 20 węzłów począwszy od czoła listy;
 wstaw element o wartości klucza k5;
 usuń element o wartości klucza k3;
 prezentacja wartości kluczowych pierwszych 20 węzłów począwszy od czoła listy;
 usuń element o wartości klucza k2;
 prezentacja wartości kluczowych pierwszych 20 węzłów począwszy od czoła listy;
 usuń element o wartości klucza k5;
 wypisz liczbę węzłów w liście;
 wyszukaj element o wartości klucza k5;
 prezentacja wartości kluczowych ostatnich 11 węzłów;
 usuń wszystkie elementy listy;
 prezentacja wartości kluczowych ostatnich 11 węzłów;
 wypisz liczbę węzłów w liście;
 czas stop;
 wypisz czas wykonania.

Przygotowanie e-maila do wysłania:
Uwaga! Kod źródłowy programu (1 plik) po oddaniu prowadzącemu zajęcia laboratoryjne musi zostać
przesłany na adres sdizo@zut.edu.pl :
 plik z kodem źródłowym musi mieć nazwę: nr_albumu.sdizo.lab02.main.c (np.
123456.sdizo.lab02.main.c); jeśli kod źródłowy programu składa się z wielu plików,
to należy stworzyć jeden plik, umieszczając w nim kody wszystkich plików składowych; (plik
może mieć rozszerzenie .c lub .cpp)
 plik musi zostać wysłany z poczty ZUT (zut.edu.pl);
 nagłówek maila (temat) musi mieć postać: SDIZO I1 XXXY LAB02,gdzie XXXY to
numer grupy (np. SDIZO I1 210C LAB02) ;
 w pierwszych trzech liniach pliku z kodem źródłowym w komentarzach muszą znaleźć się:
o linia 1: informacja identyczna z zamieszczoną w nagłówku maila
o linia 2: imię i nazwisko


o linia 3: adres email
email nie powinien zawierać żadnej treści (tylko załącznik).






Download lab2



lab2.pdf (PDF, 942.12 KB)


Download PDF







Share this file on social networks



     





Link to this page



Permanent link

Use the permanent link to the download page to share your document on Facebook, Twitter, LinkedIn, or directly with a contact by e-Mail, Messenger, Whatsapp, Line..




Short link

Use the short link to share your document on Twitter or by text message (SMS)




HTML Code

Copy the following HTML code to share your document on a Website or Blog




QR Code to this page


QR Code link to PDF file lab2.pdf






This file has been shared publicly by a user of PDF Archive.
Document ID: 0000701109.
Report illicit content