Bilgilendirme : İçerik adresleri değişmiştir. Lütfen, aradığınız içeriği arama kutucuğundan arayınız =)

Aramak istediğiniz sözcüğü giriniz...

Java
Programlama
  • Java
  • Python
  • C++
  • C#
  • MATLAB
  • MIPS Assembly
  • PIC Assembly
Web Prog.
  • HTML
  • CSS
  • PHP
  • Javascript
Veritabanı Prog.
  • SQL
Arama Yap
İstediğin programlama dilinde sınıf, fonksiyon yada bir terimi arama alanına yaz.
Çıkan seçeneklere göz at
Seçenekler arasından senin işine yaradığı seçeneği seç.
İçeriğe göz at
Seçtiğin seçenekte yer alan örneğe bakarak bilgi edin ya da kullan.
MEHMET ERIM
2019-07-30

Açıklama

  • Binary Search Tree ( İkili Arama Ağacı ) algoritmasının amaçı, verilerin birbirine göre küçüklük büyüklük ilişkisi göre ağaça yerleştirir.
  • Bu algoritmada arama olayı ise aranacak kelimenin diğer kelimelerde ascii değerlerin karşılaştırarak büyüklük ve küçüklük durumuna göre bulunmasıdır.
  • Ağaçtaki her düğüm 2 düğüme sahiptir ve düğüm solundaki düğüm küçük değer, sağındaki düğüm büyük değerlidir.

 

Kod

package bst;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class main {

	public static void main(String args[]) {
		
		try {
			
			Scanner s = new Scanner(new File("words.txt"));  // dışardan verilecek veri seti
			
			BST bst = new BST();
			
			while(s.hasNextLine()) {
				//System.out.println(s.nextLine());
				bst.add(new Eleman(s.nextLine()));
			}

			//System.out.println("kelimeler eklendi.");
	
	
			System.out.println(bst.find("kodsözlük"); // Binary Search Tree'de kelime arama
	


			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	//	System.out.println(b.find());
		
	}
	
	
	
	
	
	
	
}


class BST{
	
	
	Eleman root;
	
	BST(){
		root=null;
	}
	
	
	
	void add(Eleman newnode) {
		
		
		if(root==null) {
			
			root=newnode;
			
			
		}else {
			
			
			Eleman tmp = root;
			
			Eleman parent;
			
				
			while(true) {
				
				parent = tmp;
			
				boolean large = false;
				
				
				for(int i=0;i<newnode.key.length();i++) {
					
					if(i < tmp.key.length() && i < newnode.key.length() && newnode.key.charAt(i) != tmp.key.charAt(i)) {
						if(newnode.key.charAt(i) < tmp.key.charAt(i)) {
							large=true;
							break;
						}
					}
					
				}
				
				if(large) {
					
					tmp=tmp.left;
					
					if(tmp == null) {
						parent.left=newnode;
						return;
					}
					
					
				}else {
					
					
					tmp=tmp.right;
					
					if(tmp == null) {
						parent.right=newnode;
						return;
					}

				}
			}
			
		}
	}
	

	boolean find(String value) {
		
		
		Eleman tmp = root;
		Eleman pre = null;
	
	
		
		while(tmp != null) {
			
			
			
			pre=tmp;
			
			boolean large = false;
			
			if(tmp.key.equals(value))
				return true;
			
			
			
			for(int i=0;i<value.length();i++) {
				

				if(i < tmp.key.length() && i < value.length() && value.charAt(i) != tmp.key.charAt(i)) {
					if(value.charAt(i) < tmp.key.charAt(i)) {
						large=true;
						break;
					}
				}
				
			}
			
			if(large) {
				tmp = tmp.left;
			}
			else {
				tmp = tmp.right;
			}
			
		
			
			
		}
	
		return false;
	}
	
	
}


class Eleman{
	
	
	String key;
//	int value;
	Eleman right,left;
	
	
	Eleman(String key){
		this.key=key;
		right=null;
		left=null;
	}
	
	
	
}

İçeriği Paylaş
Facebook
Twitter
Google+
Linkedin
Yorumlar
Biz Kimiz ?
Java, Python, C++, C#, PHP, HTML, CSS, SQL ve MATLAB programlama dillerine ait sınıf ve fonksiyonların tanım ve açıklamalarını içeren bir websitesiyiz.
Günden güne içeriklerimizi yenileyip, arttırıyoruz.