From c5277dd0dc559983d86d371f4bef9c5495bed2a9 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Mon, 3 Feb 2025 17:58:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20contains=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20MyTreeSet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/spbstu/telematics/java/MyTreeSet.java | 16 ++++++++++++++++ .../java/ru/spbstu/telematics/java/AppTest.java | 15 +++++++++++++++ 2 files changed, 31 insertions(+) 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 0996d6d..e4dbd64 100644 --- a/lab2/src/main/java/ru/spbstu/telematics/java/MyTreeSet.java +++ b/lab2/src/main/java/ru/spbstu/telematics/java/MyTreeSet.java @@ -49,4 +49,20 @@ public class MyTreeSet> { return true; } + + public boolean contains(E element) { + if (element == null) { + throw new NullPointerException("Нельзя добавить null в TreeSet!"); + } + + return contains(root, element); + } + + private boolean contains(Node node, E element) { + if (node == null) return false; + + int cmp = element.compareTo(node.value); + if (cmp == 0) return true; + return cmp < 0 ? contains(node.left, element) : contains(node.right, element); + } } diff --git a/lab2/src/test/java/ru/spbstu/telematics/java/AppTest.java b/lab2/src/test/java/ru/spbstu/telematics/java/AppTest.java index 1d02c41..b3c7be3 100644 --- a/lab2/src/test/java/ru/spbstu/telematics/java/AppTest.java +++ b/lab2/src/test/java/ru/spbstu/telematics/java/AppTest.java @@ -28,4 +28,19 @@ class MyTreeSetTests { assertThrows(NullPointerException.class, () -> myTreeSet.add(null)); assertThrows(NullPointerException.class, () -> treeSet.add(null)); } + + @Test + void testContains() { + assertEquals(myTreeSet.contains(15), treeSet.contains(15)); + treeSet.add(15); + myTreeSet.add(15); + assertEquals(myTreeSet.contains(15), treeSet.contains(15)); + assertEquals(myTreeSet.contains(50), treeSet.contains(50)); + treeSet.add(50); + myTreeSet.add(50); + assertEquals(myTreeSet.contains(50), treeSet.contains(50)); + + assertThrows(NullPointerException.class, () -> myTreeSet.contains(null)); + assertThrows(NullPointerException.class, () -> treeSet.contains(null)); + } }