Skip to content
This repository was archived by the owner on Dec 28, 2024. It is now read-only.

Commit 62d2c97

Browse files
committed
Лабораторная работа №31
1 parent ddb7f88 commit 62d2c97

File tree

6 files changed

+116
-164
lines changed

6 files changed

+116
-164
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package ru.mirea.practice.s0000001.task1;
2+
3+
import java.util.ArrayDeque;
4+
import java.util.Deque;
5+
6+
public abstract class BurgerDisplay {
7+
8+
public static void displayBurgerTree(BurgerNode root) {
9+
if (root == null) {
10+
return;
11+
}
12+
13+
int height = calculateHeight(root);
14+
Deque<BurgerNode> queue = new ArrayDeque<>();
15+
queue.offer(root);
16+
int level = 0;
17+
18+
while (!queue.isEmpty()) {
19+
int levelSize = queue.size();
20+
int spacesBefore = (int) Math.pow(2, height - level - 1) - 1;
21+
int spacesBetween = (int) Math.pow(2, height - level) - 1;
22+
23+
System.out.print(" ".repeat(spacesBefore));
24+
25+
for (int i = 0; i < levelSize; i++) {
26+
BurgerNode node = queue.poll();
27+
System.out.print(node.patty);
28+
29+
if (i < levelSize - 1) {
30+
System.out.print(" ".repeat(spacesBetween));
31+
}
32+
33+
if (node.lettuce != null) {
34+
queue.offer(node.lettuce);
35+
}
36+
if (node.tomato != null) {
37+
queue.offer(node.tomato);
38+
}
39+
if (node.onion != null) {
40+
queue.offer(node.onion);
41+
}
42+
}
43+
System.out.println();
44+
level++;
45+
}
46+
}
47+
48+
// Function to compute the height of the burger tree
49+
private static int calculateHeight(BurgerNode root) {
50+
if (root == null) {
51+
return 0;
52+
}
53+
return 1 + Math.max(Math.max(calculateHeight(root.lettuce), calculateHeight(root.tomato)), calculateHeight(root.onion));
54+
}
55+
56+
public static void main(String[] args) {
57+
BurgerNode root = new BurgerNode(5);
58+
root.lettuce = new BurgerNode(2);
59+
root.tomato = new BurgerNode(3);
60+
root.onion = new BurgerNode(6);
61+
root.lettuce.lettuce = new BurgerNode(1);
62+
root.lettuce.onion = new BurgerNode(2);
63+
root.tomato.lettuce = new BurgerNode(4);
64+
root.onion.lettuce = new BurgerNode(5);
65+
root.onion.onion = new BurgerNode(6);
66+
67+
displayBurgerTree(root);
68+
}
69+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package ru.mirea.practice.s0000001.task1;
2+
3+
class BurgerNode {
4+
int patty;
5+
BurgerNode lettuce;
6+
BurgerNode tomato;
7+
BurgerNode onion;
8+
9+
BurgerNode(int patty) {
10+
this.patty = patty;
11+
}
12+
}
13+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package ru.mirea.practice.s0000001.task1;
2+
3+
public abstract class BurgerTree {
4+
public static void displayBurgerTree(BurgerNode node) {
5+
if (node == null) {
6+
return;
7+
}
8+
9+
System.out.print(node.patty);
10+
11+
if (node.lettuce != null && node.onion != null) {
12+
System.out.print("-");
13+
}
14+
15+
System.out.print(" ");
16+
displayBurgerTree(node.lettuce);
17+
displayBurgerTree(node.tomato);
18+
displayBurgerTree(node.onion);
19+
}
20+
21+
public static void main(String[] args) {
22+
BurgerNode root = new BurgerNode(5);
23+
root.lettuce = new BurgerNode(2);
24+
root.tomato = new BurgerNode(3);
25+
root.onion = new BurgerNode(6);
26+
root.lettuce.lettuce = new BurgerNode(1);
27+
root.lettuce.onion = new BurgerNode(2);
28+
root.tomato.lettuce = new BurgerNode(4);
29+
root.onion.lettuce = new BurgerNode(5);
30+
root.onion.onion = new BurgerNode(6);
31+
32+
displayBurgerTree(root);
33+
}
34+
}

students/23K0815/23K0815-p31/src/main/java/ru/mirea/practice/s0000001/task1/ProcessorTree.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

students/23K0815/23K0815-p31/src/main/java/ru/mirea/practice/s0000001/task1/TreeNode.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

students/23K0815/23K0815-p31/src/main/java/ru/mirea/practice/s0000001/task1/TwoThreeTree.java

Lines changed: 0 additions & 96 deletions
This file was deleted.

0 commit comments

Comments
 (0)