From 4bb503b70f41aee97a6a43a9fc35a089bcd7cbdc Mon Sep 17 00:00:00 2001 From: Arity-T Date: Mon, 3 Feb 2025 17:07:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20add=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B2=20MyTreeSet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ru/spbstu/telematics/java/App.java | 9 +++---- .../ru/spbstu/telematics/java/MyTreeSet.java | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/lab2/src/main/java/ru/spbstu/telematics/java/App.java b/lab2/src/main/java/ru/spbstu/telematics/java/App.java index 146e6f7..175d192 100644 --- a/lab2/src/main/java/ru/spbstu/telematics/java/App.java +++ b/lab2/src/main/java/ru/spbstu/telematics/java/App.java @@ -1,13 +1,12 @@ package ru.spbstu.telematics.java; -/** - * Hello world! - * - */ public class App { public static void main( String[] args ) { - System.out.println( "Hello World!" ); + MyTreeSet tree = new MyTreeSet<>(); + tree.add(10); + tree.add(20); + tree.add(5); } } diff --git a/lab2/src/main/java/ru/spbstu/telematics/java/MyTreeSet.java b/lab2/src/main/java/ru/spbstu/telematics/java/MyTreeSet.java index df7b78e..768aee6 100644 --- a/lab2/src/main/java/ru/spbstu/telematics/java/MyTreeSet.java +++ b/lab2/src/main/java/ru/spbstu/telematics/java/MyTreeSet.java @@ -18,4 +18,31 @@ public class MyTreeSet> { public MyTreeSet() { root = null; } + + public void add(E element) { + if (root == null) { + root = new Node(element); + return; + } + + Node currentNode = root; + Node parentNode = null; + + while (currentNode != null) { + int cmp = element.compareTo(currentNode.value); + if (cmp == 0) { + return; + } + parentNode = currentNode; + currentNode = cmp < 0 ? currentNode.left : currentNode.right; + } + + Node newNode = new Node(element); + + if (element.compareTo(parentNode.value) < 0) { + parentNode.left = newNode; + } else { + parentNode.right = newNode; + } + } }