Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Węzeł
- {
- int wartość;
- Węzeł rodzic;
- Węzeł dzieckoL;
- Węzeł dzieckoP;
- void dowiąż(int wartość)
- //dowiązuje elementy w zależności jak będziemy je wstawiać
- int[] przechodzenie //idzie najbardziej na lewo jak się da, jak dalej nie może iść to zbiera tą wartość, koniec to obiekt który nie ma rodzica
- }
- _______________________________________________________________________________________________________
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Wezel1
- {
- class Wezel
- {
- public Wezel dzieckoL = null;
- public Wezel dzieckoP = null;
- public Wezel rodzic = null;
- public int wartosc;
- public Wezel(int p_wartosc)
- {
- this.wartosc = p_wartosc;
- }
- public Wezel dodajDzieckoL(int p_wartosc)
- {
- //int[] tab = new int[10]; //przyklad do nastepnej linijki
- Wezel dziecko = new Wezel(p_wartosc);
- this.dzieckoL = dziecko;
- dziecko.rodzic = this;
- return this;
- }
- public Wezel dodajDzieckoP(int p_wartosc)
- {
- Wezel dziecko = new Wezel(p_wartosc);
- this.dzieckoP = dziecko;
- dziecko.rodzic = this;
- return this;
- }
- public void dodajWartosc(int p_wartosc) //funkcja dodaje do calego kopca //p_wartosc to zmienna lokalna wiec jest inna niz np p_wartosc w dodajDzieckoL
- {
- Wezel dziecko = new Wezel(p_wartosc);
- Wezel tmp; //ktorys z wezlow, zeby oderwac sie z instancji
- tmp = this;
- while (true)
- {
- //petla zawzse sie wykonuje
- if (tmp.wartosc < dziecko.wartosc)
- {
- if (tmp.dzieckoP == null)
- {
- tmp.dodajDzieckoP(dziecko.wartosc);
- break;
- }
- else
- {
- tmp = tmp.dzieckoP;
- }
- }
- if (tmp.wartosc > dziecko.wartosc)
- {
- if (tmp.dzieckoL == null)
- {
- tmp.dodajDzieckoL(dziecko.wartosc);
- break;
- }
- else
- {
- tmp = tmp.dzieckoL;
- }
- }
- }
- }
- void dodajWartosc(int[] tab)
- {
- if (tab == null)
- return;
- for (int i = 0; i < tab.Length; i++)
- {
- this.dodajWartosc(tab[i]);
- }
- }
- public Wezel(int[] tab)
- {
- if ((tab == null) || (tab.Length < 1))
- {
- throw new Exception("Nie można utworzyć węzła bez wartości");
- }
- wartosc = tab[0];
- List<int> tmp = tab.ToList(); //konwersja tablicy do listy
- tmp.RemoveAt(0);
- this.dodajWartosc(tmp.ToArray());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement