• Hakkımızda
  • Yazı Gönder
  • Sizden Gelenler
  • İletişim
Yazılım Karavanı | Bilim - Teknoloji - Mühendislik
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
Yazılım Karavanı | Bilim - Teknoloji - Mühendislik
No Result
View All Result
Home Ruby

Ruby İkili Arama Ağacı (BST)

Ali Murat Çevik by Ali Murat Çevik
Nisan 22, 2018
in Ruby
1 min read
0
Ruby Programlama Dili Hakkında
WhatsApp'ta PaylaşTwitter'da PaylaşLinkedIn'de PaylaşTelegram'da Paylaş
class BosDugum
  def to_a
    []
  end 
  def include?(*)
    false
  end
  def ekle(*)
    false
  end 

alias_method :<<, :ekle

  def incele
  end 
end

class Node
  attr_reader :dugum
  attr_accessor :sol, :sag

  def initialize(v)
    @dugum = v
    @sol = BosDugum.new
    @sag = BosDugum.new
  end
  def ekle(v)
    case dugum <=> v
    when 1 then ekle_sol(v)
    when -1 then ekle_sag(v)
    when 0 then false
  end 
end
 
alias_method :<<, :ekle
  def include?(v)
    case dugum <=> v 
    when 1 then sol.include?(v)
    when -1 then sag.include?(v)
    when 0 then true
  end 
end 

  def incele
    "#{sol.incele} #{dugum} #{sag.incele}"
  end
  def to_a
    sol.to_a + [dugum] + sag.to_a
  end
private
  def ekle_sol(v)
    sol.ekle(v) || self.sol = Node.new(v)
  end
  def ekle_sag(v)
    sag.ekle(v) || self.sag = Node.new(v)
  end
end 
end

tree = BinaryTree::Node.new(10)
#tree.sol = BinaryTree::Node.new(5)
#tree.sag = BinaryTree::Node.new(15)

tree.ekle(5)
tree.ekle(15)
tree.ekle(3)
tree.ekle(12)
tree.ekle(8)
tree.ekle(17)

puts tree.incele
alim cevik
Tags: Ruby
SendTweet1ShareShare
Önceki Gönderi

Ruby Diziler (Arrays) 2. Kısım

Sonraki Gönderi

Samsun Bilgi Güvenliği Zirvesi

İlgili Yazılar

Ruby Veri Tipleri (Data Types)

Ruby Diziler (Arrays) 2. Kısım

by Emre İnaç
Nisan 14, 2018
0

Bu kısımda Ruby programlama dilinde dizilerde nasıl eleman seçebiliriz ,seçtiğimiz elemanlar üzerinde nasıl değişiklik yapabiliriz ve dizilerde yineleme işlemlerini nasıl...

Ruby Veri Tipleri (Data Types)

Ruby Diziler (Arrays) 1. Kısım

by Emre İnaç
Nisan 14, 2018
0

Ruby de diziler; herhangi bir nesnenin, tamsayı indisli koleksiyonlarıdır.  Dizilerde indisler, C ve JAVA dillerinde olduğu gibi 0 ‘dan başlar....

Ruby Veri Tipleri (Data Types)

Ruby Döngüler (Loops)

by Emre İnaç
Mart 22, 2018
0

Duruma göre bazen bir metni 10 kez yazdırmak isteyebilirsiniz. Bunu "print" komutu ile yapabilirsiniz ancak döngü kurarak yapmak daha basit...

Ruby Veri Tipleri (Data Types)

Ruby Kontrol Yapıları

by Emre İnaç
Mart 20, 2018
0

Ruby diğer modern yazılım dillerine göre çok daha basit bir kontrol yapısına sahiptir. Açıklanan tüm ifadeler geriye bir değer döndürür....

Ruby Veri Tipleri (Data Types)

Ruby Değişkenler ve Sabitler (Variables & Constants)

by Emre İnaç
Mart 17, 2018
0

Ruby'de bir değişken, adının başındaki karakterler ile ayırt edilebilir. Değişken adı belirlerken karakter sınırlaması yoktur. 4 adet değişken türü mevcuttur....

Next Post
Samsun Bilgi Güvenliği Zirvesi

Samsun Bilgi Güvenliği Zirvesi

Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

  • Popüler
  • Yorumlar
  • En Yeniler
Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Temmuz 26, 2021
B Ağaçları (B Trees)

B Ağaçları (B Trees)

Ağustos 24, 2020
Splash Screen Yapımı #Flutter

Splash Screen Yapımı #Flutter

Mayıs 25, 2020
Gini Index Kullanılarak Karar Ağacının (Decision Tree)  Oluşturulması

Gini Index Kullanılarak Karar Ağacının (Decision Tree) Oluşturulması

Ağustos 20, 2020
2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

6
Magento 2 Detaylı Kurulum & Hatalar

Magento 2 Detaylı Kurulum & Hatalar

5
Flutter’da TFLite Kullanımı

Flutter’da TFLite Kullanımı

4
Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

2
Yazılım Geliştiriciler İçin Yapay Zeka Araçları

Yazılım Geliştiriciler İçin Yapay Zeka Araçları

Haziran 27, 2023
Flutter CI/CD Süreçleri (Azure DevOps Pipeline) – Part1/iOS

Flutter CI/CD Süreçleri (Azure DevOps Pipeline) – Part1/iOS

Mayıs 11, 2023
Risk Yönetimi ve Tehdit Modelleme

Risk Yönetimi ve Tehdit Modelleme

Mayıs 5, 2023
Telefonlarımız Bizi Dinliyor Peki Ama Nasıl?

Telefonlarımız Bizi Dinliyor Peki Ama Nasıl?

Mayıs 5, 2023

Reklam

Yazılım Karavanı | Bilim – Teknoloji – Mühendislik

Bilgi Teknolojileri alanına meraklı herkesin buluşma noktası!

No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar

© 2020 Yazılım Karavanı Kaynak gösterilmesini rica ederiz.