---------- T R E E S ---------- Ağaç veri yapılarında gezinti (traversal) yöntemlerini açıklayınız. Preorder, inorder ve postorder gezinti yöntemlerinin her birinin nasıl çalıştığını ve kullanım alanlarını belirtiniz. Ağaç (Tree) veri yapısının temel bileşenlerini açıklayınız. Düğüm (node), kök (root), yaprak (leaf), alt ağaç (subtree) gibi kavramların ağaç yapısındaki rolünü belirtiniz. Ağaç (Tree) veri yapılarında "sıralı ağaç" (ordered tree) kavramını açıklayınız. Sıralı ağaçların özelliklerini ve bu tür ağaçların kullanıldığı durumları belirtiniz. Yığın (Stack) ve kuyruk (Queue) veri yapılarının belirli uygulamalar için neden seçildiğini açıklayınız. Hangi durumlarda hangisinin daha uygun olduğunu belirtiniz. İkili ağaçlardaki derinlik (depth) ve yükseklik (height) kavramlarının nasıl tanımlandığını açıklayınız. Bu kavramların ağaç yapısındaki önemi nedir? Bir ikili ağaçtaki en derin yaprak düğümü (leaf node) nasıl bulunur? Bu işlemin algoritmasını ve zaman karmaşıklığını açıklayınız. İkili arama ağaçlarının (Binary Search Trees) dönüşümünü (conversion) açıklayınız. Bir BST'yi sıralı bir diziye dönüştürmenin yöntemlerini belirtiniz. İkili arama ağaçlarının (Binary Search Trees) denge durumu (balance condition) nasıl sağlanır? Denge durumunun sağlanmasının performansa etkilerini tartışınız. İkili arama ağaçlarında (Binary Search Trees) öğe arama işlemi nasıl yapılır? Bu işlemin zaman karmaşıklığını ve performansını etkileyen faktörleri tartışınız. İkili arama ağaçlarının (Binary Search Trees) dengesiz hale gelmesi durumunda hangi problemlerle karşılaşırız? Bu durumu önlemek için neler yapılabileceğini tartışınız. İkili Arama Ağacı (Binary Search Tree) üzerinde simetrik gezinti (symmetric traversal) yönteminin nasıl çalıştığını açıklayınız. Bu yöntemle elde edilen çıktının ağaç yapısındaki önemi nedir? Ağaç veri yapılarında simetrik (symmetric) ağaç kavramını açıklayınız. Simetrik ağaçların özelliklerini ve pratikteki uygulamalarını belirtiniz. Ağaç yapılarında dengeleme işlemi (balancing) neden önemlidir? Dengeleme yöntemlerinin (örneğin, AVL ve Red-Black Trees) avantajlarını tartışınız. Düğüm ekleme (insertion) ve silme (deletion) işlemlerinin AVL ağaçlarında (AVL Trees) nasıl gerçekleştirildiğini açıklayınız. Bu işlemlerin zaman karmaşıklığını tartışınız. Trie veri yapısının temel özelliklerini açıklayınız. Bu yapının kelime arama (word search) ve otomatik tamamlama (autocomplete) gibi uygulamalardaki önemini belirtiniz. Trie yapısının arama (search) işlemlerinin zaman karmaşıklığını açıklayınız. Trie’nin hangi durumlarda kullanıldığını ve avantajlarını belirtiniz. ---------- H E A P S ---------- Öncelik Kuyruğu (Priority Queue) nedir? Öncelik kuyruğunun, geleneksel kuyruk yapısından (FIFO) nasıl ayrıldığını ve hangi uygulamalarda kullanıldığını belirtiniz. Heapsort algoritmasının çalışma prensiplerini açıklayınız. Bu sıralama algoritamasının nasıl çalıştığını ve avantajlarını tartışınız. İkili Yığın (Binary Heap) yapısının kullanım alanlarını açıklayınız. Bu yapının özellikle hangi algoritmalarda yer aldığını belirtiniz. Binary Heap veri yapısında maksimum veya minimum elemanın nasıl bulunabileceğini açıklayınız. Bu işlem için kullanılan yöntemlerin zaman karmaşıklığını belirtiniz. Fibonacci Heaps veri yapısını açıklayınız. Bu yapının diğer yığın türlerine göre avantajlarını ve kullanıldığı alanları belirtiniz. İkili Yığın (Binary Heap) ile Binomial Yığın (Binomial Heap) arasındaki farkları açıklayınız. Bu veri yapılarını kullanırken dikkate alınması gereken avantaj ve dezavantajlardan bahsediniz. Heap (Yığın) veri yapısının tam ve yarım yığın (complete and incomplete heaps) arasındaki farkları açıklayınız. Bu yapıların ne tür algoritmalarda kullanıldığını tartışınız. ---------- H A S H T A B L E S ---------- Hash Tablosu ve Dizi (Array) arasındaki temel farkları açıklayınız. Her iki veri yapısının avantaj ve dezavantajlarını karşılaştırınız. Hashing işleminin zaman karmaşıklığını etkileyen faktörleri açıklayınız. Hash tablosundaki verimliliği artırmak için hangi stratejilerin uygulanabileceğini tartışınız. Hash Tablosu (Hash Table) ile arama işlemi gerçekleştirilirken karşılaşılabilecek çakışma senaryolarını açıklayınız. Bu çakışmaların nasıl yönetileceği konusunda kullanılan yöntemleri örneklerle açıklayınız. Hash Tablosunda veri silme işleminin nasıl yapıldığını açıklayınız. Bu işlemin zaman karmaşıklığını ve karşılaşılabilecek zorlukları tartışınız. Hash tablosunda "open addressing" yöntemini açıklayınız. Bu yöntemin avantajları ve dezavantajları nelerdir? Bir hash tablosunda çakışma (collision) durumunu çözmek için kullanılan "Separate Chaining" yönteminin nasıl işlediğini açıklayınız. Bu yöntemin avantajlarını ve dezavantajlarını tartışınız. Hash Tablosunda çakışma (collision) durumunu nasıl önlersiniz? Çakışma çözümleme yöntemlerini açıklayarak her birinin avantaj ve dezavantajlarını tartışınız. ---------- G R A P H S ---------- Graf veri yapılarında derinlik öncelikli arama (DFS) ve genişlik öncelikli arama (BFS) algoritmalarının temel farklarını açıklayınız. Hangi durumlarda her bir algoritmanın tercih edileceğini belirtiniz. Yönlendirilmiş bir grafın döngüsüz (Acyclic) olduğunu kanıtlamak için hangi yöntemleri kullanabilirsiniz? Bu yöntemlerin örneklerini veriniz. Ağaç ve Graf veri yapıları arasındaki temel farkları açıklayınız. Bu farkların veri yapısı seçiminde nasıl bir rol oynadığını belirtiniz. Yönlendirilmiş graf (Directed Graph) ve yönlendirilmemiş graf (Undirected Graph) arasındaki farkları açıklayınız. Bu iki graf türünün uygulama alanlarını karşılaştırınız. Graf (Graph) veri yapısının tanımını yapınız. Yönlendirilmiş (directed) ve yönlendirilmemiş (undirected) graf arasındaki farkları açıklayınız. Graf veri yapılarında kenarların (edge) ağırlığı (weight) ne anlama gelir? Ağırlıklı ve ağırlıksız graf arasındaki farkları açıklayınız. Graf veri yapılarında, bir yolun (path) uzunluğu nasıl hesaplanır? Yol hesaplamada kullanılan yöntemleri ve algoritmaları açıklayınız. ---------- S E T S ---------- Küme (Set) veri yapısının içindeki elemanların nasıl benzersiz tutulduğunu açıklayınız. Bu yapının veri analizi ve işlem süreçlerindeki önemini tartışınız. Set veri yapısı ile Liste (List) veri yapısı arasındaki farkları açıklayınız. Özellikle veri tekrarı, sıralama ve veri erişimi açısından farklılıkları belirtiniz. Bir veri kümesinde (Set) tekrarlayan öğelerin nasıl ele alındığını açıklayınız. Set yapısının veri yapılarında nasıl kullanıldığını ve veri saklamada avantajlarını anlatınız. Küme (Set) veri yapısının içindeki öğelerin benzersiz olmasının (uniqueness) neden önemli olduğunu açıklayınız. Bu durumun veri analizi ve işlem süreçlerindeki etkilerini tartışınız. Set veri yapısında öğe ekleme (insertion) ve silme (deletion) işlemlerinin nasıl yapıldığını açıklayınız. Bu işlemlerin zaman karmaşıklığını değerlendiriniz. Küme (Set) veri yapısında fark (difference) işleminin nasıl gerçekleştirildiğini açıklayınız. Fark işleminin pratikteki kullanımlarını belirtiniz. Küme (Set) veri yapısında kesişim (intersection) işleminin nasıl gerçekleştirileceğini açıklayınız. Bu işlemin zaman karmaşıklığını ve kullanıldığı yerleri tartışınız. Küme veri yapısında birleşim (union) işlemi nasıl gerçekleştirilir? Bu işlemin zaman karmaşıklığını ve uygulama alanlarını açıklayınız. Küme (Set) veri yapısı ile ilişkilendirilmiş (associative) diziler arasındaki farkları açıklayınız. Hangi durumlarda hangisinin tercih edilmesi gerektiğine dair örnekler veriniz. Küme (Set) veri yapısında "alt küme" (subset) kavramını açıklayınız. Alt küme oluşturma işleminin nasıl gerçekleştirildiğini ve pratikteki önemini tartışınız.