Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package stromy;
- import java.util.Stack;
- public class BStrom {
- private Vrchol koren = null;
- public BStrom(Vrchol koren) {
- this.koren = koren;
- }
- public int pocetVrcholov() {
- Stack<Vrchol> s = new Stack<Vrchol>();
- int pocet = 0;
- Vrchol v = koren;
- if (koren != null) {
- s.push(koren);
- while (!s.isEmpty()) {
- v = s.pop(); // vybera prvok za zasobnika
- pocet++;
- if (v.lavy != null) {
- s.push(v.lavy);// pridava do zasobnika novy prvok
- }
- if (v.pravy != null) {
- s.push(v.pravy);
- }
- }
- }
- return pocet;
- }
- public int sucetHodnotVrcholov() {
- Stack<Vrchol> s = new Stack<Vrchol>();
- int sucet = 0;
- Vrchol v = koren;// mozeme ho zadefinovať o 4 riadky nižšie datoveho
- // typu Vrchol
- if (koren != null) {
- s.push(koren);
- while (!s.isEmpty()) {
- v = s.pop(); // vybera prvok za zasobnika
- sucet = sucet + v.hodnota;
- if (v.lavy != null) {
- s.push(v.lavy);// pridava do zasobnika novy prvok
- }
- if (v.pravy != null) {
- s.push(v.pravy);
- }
- }
- }
- return sucet;
- }
- public int hlbkaStromu() {
- Stack<Vrchol> m = new Stack<Vrchol>();
- Stack<Integer> l = new Stack<Integer>();
- int hlbka = 0;
- int pomHlbka = 0;
- if (koren != null) {
- m.push(koren);
- l.push(0);
- while (!m.isEmpty()) {
- Vrchol v = m.pop();
- pomHlbka = l.pop();
- if (v.lavy == null && v.pravy == null) {
- if (hlbka < pomHlbka) {
- hlbka = pomHlbka;
- }
- } else {
- if (v.lavy != null) {
- m.push(v.lavy);// pridava do zasobnika novy prvok
- l.push(pomHlbka + 1);
- }
- if (v.pravy != null) {
- m.push(v.pravy);
- l.push(pomHlbka + 1);
- }
- }
- }
- }
- return hlbka;
- }
- public double priemerHodnotVrcholov() throws Exception {
- double sucet=sucetHodnotVrcholov();
- int pocet=pocetVrcholov();
- if(pocet==0){
- throw new Exception();
- }
- else{
- return sucet/pocet;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement