Veri Yapıları Temel Bilgiler.
Veri Yapıları Nedir?
Veri yapıları, verileri düzenlemek, depolamak ve işlemek için kullanılan yapıları ifade eder. Temelde iki ana türü vardır:
Lineer Veri Yapıları: Bu tür veri yapıları, verileri bir sıra içinde depolar. İkili arama ağaçları, diziler, bağlı listeler vb. gibi yapıları içerir.
Doğrusal Olmayan Veri Yapıları: Bu tür veri yapıları, verileri düz bir çizgide depolamazlar. Örnekler arasında ağaçlar, grafikler ve hash tablolar bulunur.
Veri yapılarını daha iyi anlamak için temel konseptlerden biri olan sınıf oluşturmayı ele alalım.
Sınıf Oluşturma
Java gibi nesne yönelimli programlama dillerinde sınıflar, veri yapısı ve işlevsellik kombinasyonlarını temsil eder. Sınıf, bir nesnenin temel yapısını tanımlar ve bu nesnenin özelliklerini (alanlar) ve davranışlarını (metotlar) içerir.
Örnek bir sınıf oluşturmak için aşağıdaki adımları takip edebilirsiniz:
Adım 1: Sınıf Tanımı
Sınıfı tanımlayarak başlayın. Aşağıda basit bir Öğrenci sınıfı örneği bulunmaktadır:
public class Ogrenci {
// Sınıfın alanları (özellikleri)
String ad;
int yas;
// Sınıfın metotları (davranışları) buraya eklenebilir
}
Dizi Elemanlarını Toplama:
- Problem: Bir dizideki tüm elemanları toplayan bir fonksiyon yazın.
- Çözüm (C++):
#include <iostream> using namespace std; int toplamDiziElemanlari(int arr[], int n) { int toplam = 0; for (int i = 0; i < n; i++) { toplam += arr[i]; } return toplam; } int main() { int dizi[] = {1, 2, 3, 4, 5}; int n = sizeof(dizi) / sizeof(dizi[0]); cout << "Dizi elemanlarinin toplami: " << toplamDiziElemanlari(dizi, n) << endl; return 0; }
En Büyük Elemanı Bulma:
- Problem: Bir dizideki en büyük elemanı bulan bir fonksiyon yazın.
- Çözüm (Python):
def enBuyukEleman(dizi): return max(dizi) dizi = [10, 5, 8, 20, 15] print("En buyuk eleman:", enBuyukEleman(dizi))
Bağlı Liste Döngüsü Kontrolü:
- Problem: Verilen bir bağlı listede döngü olup olmadığını kontrol edin.
- Çözüm (Java):
class Node { int data; Node next; Node(int data) { this.data = data; this.next = null; } } boolean döngüKontrolü(Node head) { Node hızlı = head, yavaş = head; while (hızlı != null && hızlı.next != null) { hızlı = hızlı.next.next; yavaş = yavaş.next; if (hızlı == yavaş) { return true; // Döngü var } } return false; // Döngü yok }
Bu örnekler, veri yapıları konusunda temel anlayışınızı geliştirmenize yardımcı olacaktır. Daha fazla örnek ve algoritma üzerinde çalışarak pratik yapmayı unutmayın! 🚀
Elbette! İşte Java ile yazılmış veri yapıları ve algoritmaları içeren bazı örnekler:
Dizi Elemanlarını Toplama:
- Problem: Bir dizideki tüm elemanları toplayan bir fonksiyon yazın.
- Çözüm:
public class DiziToplama { public static int toplamDiziElemanlari(int[] arr) { int toplam = 0; for (int eleman : arr) { toplam += eleman; } return toplam; } public static void main(String[] args) { int[] dizi = {1, 2, 3, 4, 5}; System.out.println("Dizi elemanlarının toplamı: " + toplamDiziElemanlari(dizi)); } }
En Büyük Elemanı Bulma:
- Problem: Bir dizideki en büyük elemanı bulan bir fonksiyon yazın.
- Çözüm:
public class EnBuyukEleman { public static int enBuyukEleman(int[] dizi) { int enBuyuk = Integer.MIN_VALUE; for (int eleman : dizi) { if (eleman > enBuyuk) { enBuyuk = eleman; } } return enBuyuk; } public static void main(String[] args) { int[] dizi = {10, 5, 8, 20, 15}; System.out.println("En büyük eleman: " + enBuyukEleman(dizi)); } }
Bağlı Liste Döngüsü Kontrolü:
- Problem: Verilen bir bağlı listede döngü olup olmadığını kontrol edin.
- Çözüm:
class Node { int data; Node next; Node(int data) { this.data = data; this.next = null; } } public class BagliListeDonguKontrolu { public static boolean donguKontrolu(Node head) { Node hizli = head, yavas = head; while (hizli != null && hizli.next != null) { hizli = hizli.next.next; yavas = yavas.next; if (hizli == yavas) { return true; // Döngü var } } return false; // Döngü yok } public static void main(String[] args) { // Bağlı liste örneği oluşturma Node head = new Node(1); head.next = new Node(2); head.next.next = new Node(3); head.next.next.next = head; // Döngü oluştur System.out.println("Bağlı listede döngü var mı? " + donguKontrolu(head)); } }
Bu örnekler, Java’da veri yapıları ve algoritmaları anlamak için iyi bir başlangıç noktasıdır. Daha fazla çalışarak bu konuda daha da ustalaşabilirsiniz! 🚀
Elbette! İşte Java ile yazılmış veri yapıları ve algoritmaları içeren bazı örnekler:
Dizi Elemanlarını Toplama:
- Problem: Bir dizideki tüm elemanları toplayan bir fonksiyon yazın.
- Çözüm:
public class DiziToplama { public static int toplamDiziElemanlari(int[] arr) { int toplam = 0; for (int eleman : arr) { toplam += eleman; } return toplam; } public static void main(String[] args) { int[] dizi = {1, 2, 3, 4, 5}; System.out.println("Dizi elemanlarının toplamı: " + toplamDiziElemanlari(dizi)); } }
En Büyük Elemanı Bulma:
- Problem: Bir dizideki en büyük elemanı bulan bir fonksiyon yazın.
- Çözüm:
public class EnBuyukEleman { public static int enBuyukEleman(int[] dizi) { int enBuyuk = Integer.MIN_VALUE; for (int eleman : dizi) { if (eleman > enBuyuk) { enBuyuk = eleman; } } return enBuyuk; } public static void main(String[] args) { int[] dizi = {10, 5, 8, 20, 15}; System.out.println("En büyük eleman: " + enBuyukEleman(dizi)); } }
Bağlı Liste Döngüsü Kontrolü:
- Problem: Verilen bir bağlı listede döngü olup olmadığını kontrol edin.
- Çözüm:
class Node { int data; Node next; Node(int data) { this.data = data; this.next = null; } } public class BagliListeDonguKontrolu { public static boolean donguKontrolu(Node head) { Node hizli = head, yavas = head; while (hizli != null && hizli.next != null) { hizli = hizli.next.next; yavas = yavas.next; if (hizli == yavas) { return true; // Döngü var } } return false; // Döngü yok } public static void main(String[] args) { // Bağlı liste örneği oluşturma Node head = new Node(1); head.next = new Node(2); head.next.next = new Node(3); head.next.next.next = head; // Döngü oluştur System.out.println("Bağlı listede döngü var mı? " + donguKontrolu(head)); } }
Bu örnekler, Java’da veri yapıları ve algoritmaları anlamak için iyi bir başlangıç noktasıdır. Daha fazla çalışarak bu konuda daha da ustalaşabilirsiniz! 🚀



Yorumlar
Yorum Gönder