Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. package stromy;
  2.  
  3. import java.util.Stack;
  4.  
  5. public class BStrom {
  6. private Vrchol koren = null;
  7.  
  8. public BStrom(Vrchol koren) {
  9. this.koren = koren;
  10. }
  11.  
  12. public int pocetVrcholov() {
  13.  
  14. Stack<Vrchol> s = new Stack<Vrchol>();
  15. int pocet = 0;
  16. Vrchol v = koren;
  17. if (koren != null) {
  18. s.push(koren);
  19. while (!s.isEmpty()) {
  20. v = s.pop(); // vybera prvok za zasobnika
  21. pocet++;
  22. if (v.lavy != null) {
  23. s.push(v.lavy);// pridava do zasobnika novy prvok
  24. }
  25. if (v.pravy != null) {
  26. s.push(v.pravy);
  27. }
  28. }
  29.  
  30. }
  31. return pocet;
  32. }
  33.  
  34. public int sucetHodnotVrcholov() {
  35.  
  36. Stack<Vrchol> s = new Stack<Vrchol>();
  37. int sucet = 0;
  38. Vrchol v = koren;// mozeme ho zadefinovať o 4 riadky nižšie datoveho
  39. // typu Vrchol
  40. if (koren != null) {
  41. s.push(koren);
  42. while (!s.isEmpty()) {
  43. v = s.pop(); // vybera prvok za zasobnika
  44. sucet = sucet + v.hodnota;
  45. if (v.lavy != null) {
  46. s.push(v.lavy);// pridava do zasobnika novy prvok
  47. }
  48. if (v.pravy != null) {
  49. s.push(v.pravy);
  50. }
  51. }
  52.  
  53. }
  54. return sucet;
  55.  
  56. }
  57.  
  58. public int hlbkaStromu() {
  59. Stack<Vrchol> m = new Stack<Vrchol>();
  60. Stack<Integer> l = new Stack<Integer>();
  61. int hlbka = 0;
  62. int pomHlbka = 0;
  63. if (koren != null) {
  64. m.push(koren);
  65. l.push(0);
  66. while (!m.isEmpty()) {
  67. Vrchol v = m.pop();
  68. pomHlbka = l.pop();
  69. if (v.lavy == null && v.pravy == null) {
  70. if (hlbka < pomHlbka) {
  71. hlbka = pomHlbka;
  72. }
  73. } else {
  74. if (v.lavy != null) {
  75. m.push(v.lavy);// pridava do zasobnika novy prvok
  76. l.push(pomHlbka + 1);
  77. }
  78. if (v.pravy != null) {
  79. m.push(v.pravy);
  80. l.push(pomHlbka + 1);
  81.  
  82. }
  83. }
  84. }
  85. }
  86. return hlbka;
  87. }
  88.  
  89. public double priemerHodnotVrcholov() throws Exception {
  90. double sucet=sucetHodnotVrcholov();
  91. int pocet=pocetVrcholov();
  92. if(pocet==0){
  93. throw new Exception();
  94.  
  95. }
  96. else{
  97. return sucet/pocet;
  98. }
  99.  
  100.  
  101. }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement