• Nie Znaleziono Wyników

Programowanie proceduralne Zadania dodatkowe 2

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie proceduralne Zadania dodatkowe 2"

Copied!
2
0
0

Pełen tekst

(1)

Programowanie proceduralne

Zadania dodatkowe 2 – Struktury cykliczne

Dynamiczna struktura danych – lista jest zdefiniowana następująco:

struct Node{

int v;

struct Node * next;

};

typedef struct Node Node;

typedef Node * List;

1. Zaimplementuj następujące funkcje:

 void add(List*,int); - dodaj nowy element (na początek listy),

 void print(List); - wypisz elementy listy (iteracyjnie),

 void printRec(List); - wypisz elementy listy (rekurencyjnie),

 void printRecRev(List); - wypisz elementy listy w odwrotnej kolejności (rekurencyjnie),

 int rem(List*, int*); - usuń pierwszy element listy (funkcja powinna zwracać informację, czy operacja się udała, natomiast wartość usuwanego elementu powinna być wpisywana w drugi argument),

 int remAll(List*); - usuń całą listę (zwolnij pamięć),

 void addNondecreasing(List*,int); - wstaw element

niemalejąco (zakładając, że elementy listy są ułożone niemalejąco, wstaw element w odpowiednie miejsce – zachowując uporządkowanie).

(2)

Dynamiczna struktura danych – drzewo wyszukiwań binarnych jest zdefiniowane następująco:

typedef struct Node{

int v;

struct Node * left;

struct Node * right;

} Node;

typedef Node* Tree;

2. Zaimplementuj następujące funkcje:

 void add(Tree*, int); - dodaj element do drzewa (tak, aby

elementy leżące w lewym poddrzewie były mniejsze niż element w węźle, a w prawym niemniejsze),

 void print(Tree); - wypisywanie elementów drzewa (w porządku infiksowym – wrostkowym),

 void printPre(Tree); - wypisywanie elementów drzewa (w porządku prefiksowym – przedrostkowym),

 void printPost(Tree); - wypisywanie elementów drzewa (w porządku postfiksowym – przyrostkowym),

 void deleteTree(Tree*); - usunięcie drzewa (zwolnienie pamięci),

 int nodesNumber(Tree); - obliczenie liczby węzłów w drzewie,

 int leavesNumber(Tree); - obliczenie liczby liści w drzewie,

 int height(Tree); - obliczenie głębokości drzewa.

Karol Tarnowski Wrocław, 2018

Cytaty

Powiązane dokumenty

Zaimplementuj funkcję rekurencyjną pobierającą jako argument liczbę całkowitą dodatnią n, która wyświetla rekurencyjnie liczby całkowite od 1 do n.. Zaimplementuj

rok akademicki 2019/20 semestr letni..

• Funkcje wywołuje się pisząc jej nazwę oraz nawiasy klamrowe z argumentami przekazywanymi do funkcji.

• Podstawowym sposobem przekazywania zmiennych do funkcji jest przekazywanie przez wartość – funkcja nie zmieni.

Jeśli element wskazywany przez indeks jest większy od maksimum, to przypisz maksimum wartość elementu wskazywanego przez indeks 5.. • Przypisz maksimum_indeks

• Dostęp do struktur wskazywanych przez wskaźnik uzyskuje się operatorem ->.

• Polem struktury może być wskaźnik na taką strukturę – tego typu struktury. nazywamy

• Jeżeli nie można otworzyć pliku funkcja fopen() zwraca wskaźnik zerowy NULL.. • Jeżeli operacja zamknięcia pliku się nie powiedzie funkcja fclose()