Bu sitedeki yazıların tamamı F. Oğuz ÖZKEROĞLU isimli şahıs tarafından uydurulmuş bilgilerden oluşmaktadır.

İçeriği kullanmak için kimseden izin alınmasına gerek yoktur.

R-Tree Veri Yapısı           

R-Tree’ler, B-Tree’lere benzeyen fakat indeksleme ve uzaysal veri işleme için kullanılan ağaç veri yapılarıdır. 1984 yılında Antonin Guttman tarafından ortaya atılmıştır.

r-tree

Şu yukardaki görseli wiki’den aldım. İki boyutlu dikdörtgenler için örnek bir R-Tree olarak açıklama yazmışlar.

Bitirme projem için araştırma yaptığım R-Tree konusunda, bu yazının üstüne birkaç yazı daha yazacağım

Ekim 31, 2009

java

(Yorum yapılmamış)

Veri yapıları dersinin önemli elemanlarından biri olan kuyruk (queue) yapısını Java ile oluşturmaya çalıştım. Kodlar biraz amatörce oldu ama çalışıyor :)

Peki nedir bu kuyruk? Wiki şöyle diyor

FIFO (First In Fist Out – İlk Giren İlk Çıkar) mantığına dayalı kuyruk yapısı ile ilgili yazdığım class:

public class kuyruk {
	// private değişkenler
	private int maxBoyut;
	private long[] kuyrukDizi;
	private int front;
	private int rear;
	private int elemanSayisi;

	// constructor
	// kuyruk degisken_ismi = new kuyruk (eleman_sayisi);
	public kuyruk (int boyut){
		maxBoyut = boyut;
		kuyrukDizi = new long [maxBoyut];
		front = 0;
	    rear = -1;
	    elemanSayisi = 0;
	}

	// metodlar

	// kuyruk boş mu?
	public boolean bosMu() {
		if (elemanSayisi == 0) return true;
		else return false;
	}

	// kuyruk dolu mu?
	public boolean doluMu() {
		if (elemanSayisi == maxBoyut) return true;
		else return false;
	}

	// kuyruğa eleman ekleme
	public void insert (long eklenecekEleman){
		if (rear == maxBoyut -1) rear = -1;
		rear++;
		kuyrukDizi [rear] = eklenecekEleman;
		elemanSayisi++;
	}

	// kuyruktan eleman çekme
	public long remove(){
		long cikarilacak = kuyrukDizi [front++];
		if (front == maxBoyut) front = 0;
		elemanSayisi--;
		return cikarilacak;
	}

	// kuyruğun sonundaki eleman
	public long kuyrukNerde() {
		return kuyrukDizi[front];
	}

	// kuyruğun boyutu
	public int kuyrukBoyutu() {
		return elemanSayisi;
	}
}

yukarıdaki gibidir.

Ağustos 23, 2009

algoritmalar, java

6 yorum

Uzun zamandır bloğuma bir şey yazmıyordum, hazır Java çalışmaya başlamışken öğrendiklerimi ufak ufak buraya ekleyeyim, bilen için çok basit şeyler olsalar da eminim bilmeyen, google’dan buraya gelip bir şeyler öğrenen insanlar da olacaktır. Lafı fazla uzatmaya gerek yok, İlk Giren Son Çıkar (First In Last Out – FILO) mantığı ile çalışan stack (yığın) veri yapısının java kodunu en basit şekilde yazmaya çalıştım. Daha tam öğrenmediğim için erişim belirteçlerini kullanmadım, default değerler neyse öyle işleyecek artık :)

Stack veri yapısı hakkında bilgi almak için Wiki‘yi ziyaret edebilirsiniz.

Gelelim kodumuza :

class Stack
{
    int stck[] = new int[20];
    int p;

    public Stack()
    {
        p= -1;
    }

    void push (int item)
    {
        if (p==9)
            System.out.println("Stack dolu.");
        else
            stck[++p] = item;
    }

    int pop()
    {
        if(p < 0)
        {
            System.out.println("Stack boş");
            return 0;
        }
        else return stck[p--];
    }
}