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

Commit 18fc9fd

Browse files
committed
temp
1 parent bdd7561 commit 18fc9fd

File tree

12 files changed

+665
-0
lines changed

12 files changed

+665
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0114</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0114-p030.2</artifactId>
12+
<description>Массивы</description>
13+
</project>
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
package ru.mirea.practice.s23k0114.lab1;
2+
3+
4+
class BinaryTree {
5+
Node root;
6+
int count;
7+
8+
public BinaryTree() {
9+
root = null;
10+
count = 0;
11+
}
12+
13+
public void insert(int item) {
14+
Node newNode = new Node(item);
15+
if (root == null) {
16+
root = newNode;
17+
count++;
18+
return;
19+
}
20+
21+
Node current = root;
22+
Node parent;
23+
24+
while (true) {
25+
parent = current;
26+
if (item < current.data) {
27+
current = current.left;
28+
if (current == null) {
29+
parent.left = newNode;
30+
count++;
31+
return;
32+
}
33+
} else if (item > current.data) {
34+
current = current.right;
35+
if (current == null) {
36+
parent.right = newNode;
37+
count++;
38+
}
39+
return;
40+
} else {
41+
return;
42+
}
43+
}
44+
}
45+
46+
public void inorder() {
47+
inorderRec(root);
48+
System.out.println();
49+
}
50+
51+
private void inorderRec(Node node) {
52+
if (node != null) {
53+
inorderRec(node.left);
54+
System.out.print(node.data + " ");
55+
inorderRec(node.right);
56+
}
57+
}
58+
59+
public void delete(int key) {
60+
Node current = root;
61+
Node parent = null;
62+
63+
while (current != null && current.data != key) {
64+
parent = current;
65+
if (key < current.data) {
66+
current = current.left;
67+
} else {
68+
current = current.right;
69+
}
70+
}
71+
72+
if (current == null) {
73+
return;
74+
}
75+
76+
if (current.left == null && current.right == null) {
77+
if (current == root) {
78+
root = null;
79+
} else if (parent.left == current) {
80+
parent.left = null;
81+
} else {
82+
parent.right = null;
83+
}
84+
} else if (current.left == null || current.right == null) {
85+
Node child = (current.left != null) ? current.left : current.right;
86+
if (current == root) {
87+
root = child;
88+
} else if (parent.left == current) {
89+
parent.left = child;
90+
} else {
91+
parent.right = child;
92+
}
93+
} else {
94+
Node successor = findMin(current.right);
95+
int val = successor.data;
96+
delete(successor.data);
97+
current.data = val;
98+
}
99+
100+
count--;
101+
}
102+
103+
private Node findMin(Node node) {
104+
while (node.left != null) {
105+
node = node.left;
106+
}
107+
return node;
108+
}
109+
110+
public void destroyTree() {
111+
root = null;
112+
count = 0;
113+
}
114+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ru.mirea.practice.s23k0114.lab1;
2+
3+
public class Node {
4+
int data;
5+
Node left;
6+
Node right;
7+
8+
public Node(int item) {
9+
data = item;
10+
left = right = null;
11+
}
12+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package ru.mirea.practice.s23k0114.lab1;
2+
3+
public final class Test {
4+
private Test() {
5+
6+
}
7+
8+
public static void main(String[] args) {
9+
BinaryTree tree = new BinaryTree();
10+
11+
int[] nodes = {5, 4, 3, 2, 1, 6, 7, 8, 9, 10};
12+
for (int node : nodes) {
13+
tree.insert(node);
14+
}
15+
16+
System.out.println("Содержимое дерева в сортированном порядке:");
17+
tree.inorder();
18+
19+
int keyToDelete = 5;
20+
System.out.println("Удаление узла: " + keyToDelete);
21+
tree.delete(keyToDelete);
22+
23+
System.out.println("Содержимое дерева после удаления узла:");
24+
tree.inorder();
25+
26+
tree.destroyTree();
27+
System.out.println("Полное удаление дерева.");
28+
}
29+
}

students/23K0114/23K0114-p031/pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0114</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0114-p031</artifactId>
12+
<description>Массивы</description>
13+
</project>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package ru.mirea.practice.s23k0114.lab1;
2+
3+
4+
import java.io.IOException;
5+
6+
public final class Main {
7+
private Main() {
8+
9+
}
10+
11+
public static void main(String[] args) throws IOException {
12+
TwoThreeTree tree = new TwoThreeTree();
13+
14+
tree.readFromFile("/Users/martin/IdeaProjects/algorithms-and-data-structures-2024/students/23K0112/PROCS.txt");
15+
tree.processCommands();
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package ru.mirea.practice.s23k0114.lab1;
2+
3+
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
7+
public class Node {
8+
List<Processor> keys;
9+
List<Node> children;
10+
boolean isLeaf;
11+
12+
public Node(boolean isLeaf) {
13+
keys = new ArrayList<>();
14+
children = new ArrayList<>();
15+
this.isLeaf = isLeaf;
16+
}
17+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package ru.mirea.practice.s23k0114.lab1;
2+
3+
class Processor {
4+
int key;
5+
String name;
6+
double frequency;
7+
int cacheSize;
8+
double busFrequency;
9+
int specint;
10+
int specfp;
11+
12+
public Processor(int key, String name, double frequency, int cacheSize, double busFrequency, int specint, int specfp) {
13+
this.key = key;
14+
this.name = name;
15+
this.frequency = frequency;
16+
this.cacheSize = cacheSize;
17+
this.busFrequency = busFrequency;
18+
this.specint = specint;
19+
this.specfp = specfp;
20+
}
21+
}

0 commit comments

Comments
 (0)