Двійкове дерево пошуку 1#4146

Двійкове дерево пошуку 1 (Розбір)

Промоделуємо зазначені операції за допомогою множини set.

Реалізація алгоритму

Оголосимо робочу множину .

set<int> s;

Читаємо вхідні дані.

while (cin >> op >> x)
{

Вставка елемента до множини.

  if (op == "insert") s.insert(x); else

Видалення елемента з множини якщо він там існує.

  if (op == "delete") s.erase(x);  else
  {

Перевірка існування елемента в множині.

    if (s.find(x) != s.end()) printf("true\n"); 
    else printf("false\n");
  }
}

Java реалізація

import java.util.*;

public class Main
{
  public static void main(String []args)
  {
    Scanner con = new Scanner(System.in);
    TreeSet<Integer> s = new TreeSet<Integer>();
    
    while(con.hasNext())
    {
      String c = con.next();
      int x = con.nextInt();
      if (c.charAt(0) == 'i') s.add(x); else
      if (c.charAt(0) == 'd') s.remove(x); else
      {
        if (s.contains(x))
          System.out.println("true");
        else
          System.out.println("false");
      }
    }
    con.close();
  }
} 

Python реалізація

import sys

Оголосимо робочу множину.

s = set()

Читаємо вхідні дані.

for line in sys.stdin:
  op, x = line.split()
  x = int(x)

Вставка елемента до множини.

 if op == "insert":
    s.add(x)

Видалення елемента з множини якщо він там існує.

  elif op == "delete":
    s.discard(x)
  else:

Перевірка існування елемента в множині.

    if x in s:
      print("true")
    else:
      print("false")