Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/time.h>
- //definicja wezla
- struct wezel {
- int wartosc; //wartosc przechowywana w wezle
- struct wezel * rodzic; //wskaznik na rodzica
- struct wezel * l_syn; //wskaznik na lewe dziecko
- struct wezel * p_syn; //wskaznik na prawe dziecko
- };
- struct wezel * root;
- void dodawanie(int n, struct wezel * start) {
- //jezeli drzewo jest puste to dodaj korzen
- if (root == NULL) {
- root = (wezel * ) malloc(sizeof * root);
- root - > wartosc = n;
- root - > l_syn = NULL;
- root - > p_syn = NULL;
- root - > rodzic = NULL;
- }
- //jezeli zadana wartosc jest mniejsza od korzenia idz do lewego poddrzewa
- else if (n < start - > wartosc) {
- //jezeli lewe poddrzewo istnieje wywolaj dla niego ta funkcje rekurencyjnie
- if (start - > l_syn != NULL) {
- dodawanie(n, start - > l_syn);
- }
- //jezeli lewe poddrzewo nie istnieje dodaj nowy wezel o zadanej wartosci
- else {
- wezel * nowy = (wezel * ) malloc(sizeof * root);
- nowy - > wartosc = n;
- nowy - > l_syn = NULL;
- nowy - > p_syn = NULL;
- nowy - > rodzic = start;
- start - > l_syn = nowy;
- }
- }
- //jezeli zadana wartosc jest wieksza lub rowna korzeniowi idz do prawego poddrzewa
- else {
- //jezeli prawe poddrzewo istnieje wywolaj dla niego ta funkcje rekurencyjnie
- if (start - > p_syn != NULL) {
- dodawanie(n, start - > p_syn);
- }
- //jezeli prawe poddrzewo nie istnieje dodaj nowy wezel o zadanej wartosci
- else {
- wezel * nowy = (wezel * ) malloc(sizeof * root);
- nowy - > wartosc = n;
- nowy - > l_syn = NULL;
- nowy - > p_syn = NULL;
- nowy - > rodzic = start;
- start - > p_syn = nowy;
- }
- }
- }
- int maksimum(struct wezel * start) {
- if (start - > l_syn != NULL)
- return naj_lewo(start - > l_syn);
- else
- return start.wartosc;
- }
- int main() {
- dodawanie(5, root);
- dodawanie(1, root);
- dodawanie(2, root);
- dodawanie(4, root);
- dodawanie(3, root);
- dodawanie(7, root);
- dodawanie(6, root);
- dodawanie(8, root);
- dodawanie(9, root);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement