Programowanie proceduralne
INP001210WL
rok akademicki 2018/19 semestr letni
Wykład 5
Karol Tarnowski
karol.tarnowski@pwr.edu.pl
A-1 p. 411B
• typedef
• Struktury cykliczne
– lista jednokierunkowa – drzewo binarne
Plan prezentacji
• Język C dysponuje mechanizmem, który
umożliwia tworzenie nowych nazw typów danych typedef okreslenie_typu nowa_nazwa;
typedef int Length;
Length len, maxlen;
Length *lengths[];
typedef
typedef
typedef
• Polem struktury może być wskaźnik na taką strukturę – tego typu struktury
nazywamy strukturami cyklicznymi
• Polem struktury nie może być sama struktura
Struktury cykliczne
Struktury cykliczne
Przykład
ptr1 ptr2 ptr3
NULL
Lista
List Node
next v
Node next v
Node next v
NULL
Lista
Dodaj element (na początku)
List Node
next v
Node next v
Node next v
NULL
Lista
Dodaj element (na początku)
List Node
next v
Node next v
Node next v
NULL Node
next v
Lista
Dodaj element (na początku)
List Node
next v
Node next v
Node next v
NULL Node
next v
Lista
Dodaj element (na początku)
List Node
next v
Node next v
Node next v
NULL Node
next v
Lista
Dodaj element (wewnątrz)
List Node
next v
Node next v
Node next v
NULL
Lista
Dodaj element (wewnątrz)
List Node
next v
Node next v
Node next v
NULL Node
next v
Lista
Dodaj element (wewnątrz)
List Node
next v
Node next v
Node next v
NULL Node
next v
Lista
Dodaj element (wewnątrz)
List Node
next v
Node next v
Node next v
NULL Node
next v
Lista
Wypisz (iteracyjnie)
List Node
next v
Node next v
Node next v
NULL n
Lista
Wypisz (iteracyjnie)
List Node
next v
Node next v
Node next v
NULL n
Lista
Wypisz (iteracyjnie)
List Node
next v
Node next v
Node next v
NULL n
Lista
Wypisz (iteracyjnie)
List Node
next v
Node next v
Node next v
NULL n
Lista
Wypisz (iteracyjnie)
List Node
next v
Node next v
Node next v
NULL n
Lista
Usuń pierwszy element
List Node
next v
Node next v
Node next v
NULL n
Lista
Usuń pierwszy element
List Node
next v
Node next v
Node next v
NULL n
Lista
Usuń pierwszy element
List Node
next v
Node next v
Node next v
NULL n
Lista
Usuń pierwszy element
List Node
next v
Node next v
NULL
Drzewo
Node
left v
right
Node
left v
right
Node
left v
right
Node
left v
right
Node
left v
right
Node
left v
right
Tree