İkilik axtarış ağacı 1#4146

İkilik axtarış ağacı 1 (Həll təhlili)

Təsvir olunmuş əməliyyatları set vahidi ilə modelləşdirək.

Alqoritmin realizasiyası

İşçi vahidini elan edək.

set<int> s;

Giriş məlumatlarını oxuyuruq.

while (cin >> op >> x)
{

Elementin vahidə daxil edilməsi.

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

Elementin vahiddən silinməsi əgər orada mövcuddursa.

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

Elementin vahiddə olub-olmamasının yoxlanılması.

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

Java realizasiyası

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 realizasiyası

import sys

İşçi vahidini elan edək.

s = set()

Giriş məlumatlarını oxuyuruq.

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

Elementin vahidə daxil edilməsi.

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

Elementin vahiddən silinməsi əgər orada mövcuddursa.

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

Elementin vahiddə olub-olmamasının yoxlanılması.

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