Veri yapıları ; Bilgisayar programcılığında yeni biriyseniz ya da yıllarca bu alanda çalışan biriyseniz, veri yapılarını her zaman duyacaksınız. İyi bir programcı olmak veya hatta temel işlemleri gerçekleştirebilecek bir programa sahip olmak istiyorsanız, veri yapılarını anlamak çok önemlidir. Sonuçta, programlar = algoritmalar + veri yapıları olduğu söylenir.
Veri yapıları hakkında anlaşılması gereken çok şey var. Ne olduklarını, neden önemli olduklarını ve bilmek isteyeceksiniz. Sonuç olarak, başarılı bir programcı olmak istiyorsanız, veri yapılarını anlamanız gerekir .
Veri yapısı nedir?
Bilgisayar bilimindeki bir veri yapısı, verileri depolamak, düzenli tutmak ve kolay modifikasyon ve erişim sağlamak için kullanılan bir sistemdir. Basitçe ifade etmek gerekirse, bir veri yapısı, bir grup veri değeri, birbirleriyle nasıl ilişkilendiğini ve bunlar üzerinde gerçekleştirilebilecek işlemleri veya işlevleri ifade eder. Bu şekilde hatırlayın:
- Programlar = algoritmalar + veri yapıları
- Veri yapıları = ilgili veriler + bu veriler üzerinde izin verilen işlemler
Başka bir deyişle, etkili ve verimli programların hepsi sağlam veri yapıları ile başlar. Aslında, veri yapıları muhtemelen bilgisayar bilimindeki en temel ve yapı taşıdır.
Veri yapıları neden önemlidir?
Veri yapıları herhangi bir katı bilgisayar programının temelidir. Doğru veri yapısı olmadan, verimli bir program oluşturmak çok zordur. Bilgisayar programları verilere ve çoğuna dayanır. İyi çalışan bir program oluşturmayı umuyorsanız, veri yapısı düzeyinde doğru bir şekilde almanızı sağlamak önemlidir. Doğru veri yapıları birçok veri türünü mantıklı bir şekilde ve verilere kolayca erişilebileceği, değiştirilebileceği ve yapılandırılabileceği bir şekilde düzenler.
Veri yapılarını anlamanın kolay yolu nedir?
Üç örnek, veri yapılarını daha iyi anlamanıza yardımcı olabilir. İlk olarak, bir sözlük düşünün. Sözlükte, kelimeler alfabetik olarak düzenlenmiştir. Bu, bir kelimeyi hızlı ve verimli bir şekilde aramanızı ve bulmanızı sağlar.
Sonra, bir şehir haritası. Geometriler halinde düzenlenmiş bir şehir haritası ölçeklere ve yönlere sahiptir ve bir dönüm noktası için etkili bir şekilde arama yapmayı kolaylaştırır. Bir şehir haritasıyla, bir yerden başka bir yere de bir rota bulabilirsiniz.
Bir işletmenin nakit nakit çıkışı bildirimi. Bu ifadeler genellikle tablo şeması veya tablo kullanır. Belirli veri yapıları gibi, organize sütunlarda olduğunda verileri toplamak ve çıkarmak kolaydır.
Farklı veri yapıları nelerdir?
Veriler, veri türüne ve onunla ne yapmak istediğinize bağlı olarak farklı şekillerde düzenlenmelidir. Verileri etkili bir şekilde organize etmek ve bir program oluşturmak için, farklı veri yapısı türlerini ve bunların nasıl çalıştığını anlamanız gerekir. Geniş anlamda, veri yapıları genellikle doğrusal veri yapılarına ve doğrusal olmayan veri yapılarına ayrılır. Temel veri yapı türlerinden bazıları şunlardır:
Doğrusal Veri Yapıları
- Diziler
- Yığınlar
- Kuyruklar
- Bağlantılı Listeler
- Karma Tablolar
Doğrusal olmayan veri yapıları
- Ağaçlar
- Grafikler
- Kalan deneme
Doğrusal Veri Yapıları
Diziler
Diziler en temel ve temel veri yapısıdır. Kuyruklar, yığınlar veya karma tablolar gibi başka yapılar oluşturmak istiyorsanız, önce dizilerin nasıl oluşturulacağını bilmek en iyisidir. Dizi, bir bellek konumunda düzgün bir şekilde saklanan benzer veri grubudur. Bir dizideki her veri parçasına pozitif bir sayısal değer verilir. Buna indeks denir. Dizin numaraları, temel bir değere sayı ekleyerek her bir veri parçasının veya öğenin konumunu belirlemeyi kolaylaştırır. Temel değer genellikle ilk öğenin bellek konumudur. Birçok programlama dili bir dizinin başlangıç dizinine 0 değerini verir.
Yığınlar
Bilgisayarınızda Geri Al işlevini kullandıysanız, yığın veri yapısına teşekkür edebilirsiniz. Yığınlar, Son Giren İlk Çıkar (LIFO) yönteminde çalışır. Bir kitap yığını hayal edin. Yığının üstüne en son yerleştirdiğiniz ilk kaldırabilirsiniz. Alttaki kitabı (ilk yatırdığınız kitap) güvenle kaldırmak için , üstündeki tüm kitapları çekmeniz gerekir.
Kuyruklar
Kuyruklar ve yığınlar, her ikisinin de öğeleri sırayla depolanmış olmaları bakımından benzerdir. Aradaki fark, Sıranın Son Giren İlk Çıkar (LIFO) yöntemi yerine İlk Giren İlk Çıkar (FIFO) yöntemini kullanmasıdır. Bir kuyruğu anlamak için bir rollercoaster almak için sıraya giren insanları düşünün. Sıradaki ilk kişi, hattan çıkıp yolculuğa çıkan ilk kişidir. Satırdaki son kişi satırın sonuncusu olacak.
Bağlantılı Listeler
Yığınlar ve kuyruklar gibi, bağlantılı bir liste de doğrusal bir veri yapısıdır. Bununla birlikte bağlantılı bir liste çeşitli şekillerde farklıdır. İç yapı, bellek ayırma ve temel işlemleri gerçekleştirme şekliniz farklıdır. Bağlantılı bir listeyi, her öğenin bir sonrakine bağlı olduğu bir dizi öğe olarak düşünün. Her düğüm, veri ve bir işaretçi içeren bilgilerden oluşur.
Bağlantılı listeler dize, karakter veya sayı içeren her şeyi içerebilir. Sıralanmamış veya sıralanabilir. Ve yinelenen öğeler veya tüm benzersiz öğeler içerebilir. Bir dizide öğeler dizine eklenir ve anında bir öğeye erişebilirsiniz. Bununla birlikte, bağlantılı bir listede, kafa ile başlamanız ve istediğiniz öğeye ulaşana kadar yolunuzu bulmanız gerekir. Doğrusal zaman alır, bu yüzden biraz daha yavaştır. Bağlantılı listelerin avantajı, listenin başına sabit zamanda veya çok hızlı bir şekilde öğe ekleyip silebilmenizdir.
Karma Tablolar
Karma tablolar, doğrusal veya doğrusal olmayan bir veri yapısı olarak uygulanabilen bir veri yapısıdır. Genellikle, doğrusal bir veri yapısı olarak uygulanırlar. Karma tablolar, anahtarları değerlerle eşleştirmek için kullanılır. Örneğin bir ad listeniz varsa, bir kişinin telefon numarasını adını kullanarak tanımlamak için bir karma tablo kullanılabilir. Genellikle, karma tablolar diziler kullanılarak oluşturulur.
Doğrusal Olmayan Veri Yapıları
Ağaçlar
Diziler, yığınlar, kuyruklar ve bağlantılı listelerin tümü doğrusal veri yapıları iken, ağaç doğrusal olmayan bir hiyerarşik veri yapısıdır. Bunu CEO’nun kök olduğu ve bölüm başkanlarının ilk düğüm olduğu bir şirket gibi düşünün. Bu bölüm başkanları, kendilerine rapor veren ve ek düğümler oluşturan diğer çalışanların üzerindedir. Ağaçlar, her üst-alt düğüm ilişkisi için bir kenar (veya bağlantı) olacak şekilde yapılandırılmıştır. Bir kökten belirli bir düğüme giden tek bir yol olmalıdır.
Ağaçlar daha karmaşık veri yapılarından biri olabilir ve genellikle yapay zeka veya diğer karmaşık problem çözme sistemlerinde kullanılır.
Farklı bir dizi vardır türleri ikili ağacın, ikili arama ağacına, AVL ağacında, dengeli ağacın kırmızı, siyah ağaç 2-3 ağaca, ve N-li ağacı bulunan ağaçların,. İkili ağaç ve ikili arama ağacı genellikle en sık kullanılanlardır.
Grafikler
Bir ağaç aslında bir grafiğin bir formudur. Bir grafiği bir ağaçtan ayıran şey, bir grafikte düğümler arasındaki bağlantıyı dikte eden kuralların olmamasıdır. Bir grafik daha çok bir ağ olarak görülebilir. Tıpkı matematikteki bir grafik gibi, kodlamadaki grafikler de köşeleri içerir. Düğümler bir grafikteki noktalar olarak görülebilir, ancak her düğüm genellikle bir veya daha fazla diğerine bağlanır ve web benzeri bir şekil oluşturur.
Grafik türleri, yönlendirilmemiş bir grafik ve yönlendirilmiş bir grafik içerir. Bir bitişiklik matrisi veya bitişiklik listesi kullanılarak temsil edilebilirler.
Kalan deneme
Bir arama motoru kullanırken size otomatik öneriler verildiyse, işyerinde üç boyutlu bir veri yapısı gördünüz. Denemeler ip ile ilgili sorunların çözümünde etkilidir. Denemelere “önek ağaçları” da denir çünkü bunlar daha uzun yolların önekidir.
Veri Yapıları Üzerine Nihai Düşünceler
Gördüğünüz gibi, veri yapıları inanılmaz derecede karmaşık hale gelebilir. Burada sadece yüzeyi çizdik. Her veri yapısı genellikle bir dizi farklı uygulamaya ve kullanıma sahiptir. Bununla birlikte, veri yapıları hakkında temel bir anlayışa sahip olmak, iyi bir programcı olmak için kritik bir ilk adımdır.
Veri yapılarını öğrendikten sonra, çalışmak için sağlam bir temel anlayışa sahip olacağınız için farklı programlama dillerini öğrenmek için daha kolay bir zamanınız olacaktır.