Doğrusal Veri Yapısı Nedir? Açıklanan Veri Yapılarının Listesi
Yayınlanan: 2021-06-18Veri yapıları, kullanıcılar tarafından verimli kullanılacak şekilde yapılandırılmış verilerdir. Bilgisayar programı büyük ölçüde verilere dayandığından ve performansı için büyük miktarda veri gerektirdiğinden, verilerin düzenlenmesi son derece önemlidir. Organize yapılardaki bu veri düzenlemesi, veri yapısı olarak bilinir.
Verilerin veri yapılarında saklanması, veri öğeleri üzerinde gerçekleştirilebilecek erişim, değişiklik ve diğer işlemlere izin verir. Verilerin düzenlenmesi esas olarak bir bilgisayarda yapılır ve bu nedenle veri yapılarıyla işlemleri yürütmek için uygun algoritmalar gereklidir. Alanı azaltmak ve farklı görevlerin zaman karmaşıklığını azaltmak, veri yapılarının temel amacıdır.
Bir veri yapısındaki en önemli noktalar şunlardır:
- Her tür veri yapısı aracılığıyla büyük miktarda veri düzenlenir.
- Her veri yapısı tarafından belirli bir ilke izlenir.
- Veri yapısı üzerinde herhangi bir işlem yapılsa dahi veri yapısının temel prensibine uyulmalıdır.
Bir veri yapısı içindeki verilerin düzenlenmesi farklı sıraları takip edebilir. Bu nedenle bir veri yapısı, verilerin düzenlenme şekline göre sınıflandırılır. Temel olarak, iki tür veri yapısı vardır .
- İlkel veri yapısı
- İlkel olmayan veri yapısı
İlkel veri yapısı türü, char, float, int ve double gibi önceden tanımlanmış veri yapılarını içerir.
İlkel olmayan veri yapıları, öğelerin koleksiyonunu depolamak için kullanılır. Bu veri yapısı ayrıca şu şekilde kategorize edilebilir:
- Doğrusal veri yapısı
- Doğrusal olmayan veri yapısı.
Okuyun: Doğrusal ve doğrusal olmayan veri yapısı arasındaki farkları öğrenin
Bu yazıda, esas olarak verileri doğrusal olarak depolayan veri yapısını tartışacağız.
İçindekiler
Doğrusal Veri Yapısı
Verilerin düzenlenmesinin doğrusal bir eğilim izlediği bir veri yapısı türüdür. Veri elemanları, eleman önceki ve sonraki elemanlara doğrudan bağlı olacak şekilde doğrusal olarak düzenlenmiştir. Öğeler doğrusal olarak depolandığından, yapı tek seviyeli veri depolamayı destekler. Ve bu nedenle, verilerin geçişi yalnızca tek bir çalıştırmayla sağlanır.
özellikleri
- Verilerin doğrusal bir sırayla depolandığı ve yönetildiği bir veri yapısı türüdür.
- Dizideki veri öğeleri birbiri ardına bağlanır.
- Veriler sıralı olarak düzenlendiğinden, bir bilgisayarın belleğindeki verilerin doğrusal yapısının uygulanması kolaydır.
- Dizi, sıra. Yığın, bağlantılı liste vb. bu tür yapıların örnekleridir.
- Veri yapısında depolanan veri öğelerinin yalnızca bir ilişkisi vardır.
- Veri öğeleri tek bir seviyede depolandığından, veri öğelerinin geçişi tek bir çalıştırmada gerçekleştirilebilir.
- Verileri doğrusal olarak depolayan bir yapı uygulanırsa, bilgisayar belleğinin yetersiz kullanımı vardır.
- Veri yapısının boyutunun artmasıyla yapının zaman karmaşıklığı artar.
Dolayısıyla bu yapılar, öğelerin sırayla depolandığı ve şu sırayı takip ettiği bir tür veri yapısı olarak özetlenebilir:
- Bir sonraki öğeye sahip olan yalnızca bir ilk öğe mevcuttur .
- Bir önceki öğeye sahip olan yalnızca bir son öğe mevcuttur .
- Veri yapısındaki diğer tüm öğelerin bir önceki ve bir sonraki öğesi vardır.
Doğrusal bir veri yapısındaki veri yapısının listesi
1. Dizi
Dizi, homojen öğeleri bitişik olan bellek konumlarında depolayan yapı türüdür. Aynı tür nesneler bir dizide sırayla saklanır. Dizinin ana fikri, aynı türden birden çok verinin birlikte saklanabilmesidir. Verileri bir diziye kaydetmeden önce dizinin boyutu tanımlanmalıdır. Dizideki herhangi bir öğeye erişilebilir veya değiştirilebilir ve depolanan öğeler konumlarını belirlemek için indekslenir.
Bir dizi, bir sınıftaki tüm öğrenciler için notların saklanmasına ilişkin basit bir örnek yardımıyla açıklanabilir. Diyelim ki 20 öğrenci var, o zaman dizinin boyutu 20 olarak belirtilmelidir. Daha sonra tüm öğrencilerin notları, her öğrenci için notlar için ayrı değişkenler oluşturmaya gerek kalmadan oluşturulan dizide saklanabilir. Dizinin basit geçişi, öğelere erişime yol açabilir.
2. Bağlantılı liste
Bağlantılı liste, ayrı nesnelerin sıralı olarak depolandığı veri yapısı türüdür. Veri yapısında depolanan her nesne, veriye ve bir sonraki nesneye bir referansa sahip olacaktır. Bağlantılı listenin son düğümü boş bir referansa sahiptir. Bağlantılı listenin ilk elemanı listenin başı olarak bilinir. Bağlantılı bir liste ile diğer veri yapıları türleri arasında birçok fark vardır . Bunlar, bellek tahsisi, veri yapısının iç yapısı ve bağlantılı listede gerçekleştirilen işlemler açısındandır.
Bir dizideki indeksleme elemanın bulunmasına yardımcı olduğundan, bağlantılı bir listedeki bir öğeye ulaşmak, dizilere kıyasla daha yavaş bir işlemdir. Bununla birlikte, bağlantılı bir liste durumunda, süreç baştan başlamalı ve istenen elemana ulaşılana kadar tüm yapı boyunca geçmelidir. Bunun aksine bağlantılı listeler kullanmanın avantajı, başlangıçtaki öğelerin eklenmesi veya silinmesinin çok hızlı bir şekilde yapılabilmesidir.
Üç tür bağlantılı liste vardır:
- Tek Bağlantılı Liste: Bu tür yapı, geçerli düğümde depolanan bir sonraki düğümün adresine veya referansına sahiptir. Bu nedenle, sonunda adresi ve referansı NULL olan bir düğüm. Örnek: A->B->C->D->E->NULL.
- Çift Bağlantılı Liste : Adından da anlaşılacağı gibi, her düğümün kendisiyle ilişkilendirilmiş iki referansı vardır. Bir referans önceki düğüme, ikinci referans sonraki düğüme yönlendirilir. Önceki düğümler için referans mevcut olduğundan, geçiş her iki yönde de mümkündür. Ayrıca, silme için açık erişim gerekli değildir. Örnek: NULL<-A<->B<->C<->D<->E->NULL.
- Dairesel Bağlantılı Liste: Dairesel bağlantılı listedeki düğümler, bir daire oluşturacak şekilde bağlanır. Bağlantılı liste dairesel olduğundan, son yoktur ve dolayısıyla NULL yoktur. Bu tip bağlantılı listeler hem tekli hem de ikili yapısını takip edebilir. Belirli bir başlangıç düğümü yoktur ve verilerden herhangi bir düğüm başlangıç düğümü olabilir. Son düğümün referansı ilk düğüme işaret eder. Örnek: A->B->C->D->E.
Bağlantılı bir listenin özellikleri şunlardır:
- Erişim süresi: O(n)
- Arama süresi: O(n)
- Öğe ekleme: O(1)
- Bir Elemanın Silinmesi : O(1)
3. Yığın
Yığın, veri yapısında depolanan öğelerin LIFO (son giren ilk çıkar) veya FILO (İlk Giren Son Çıkar) kuralına uyduğu başka bir yapı türüdür. Bir yığınla ilişkilendirilen iki tür işlem vardır, yani push ve pop. Push, koleksiyona bir öğe eklenmesi gerektiğinde kullanılır ve son öğenin koleksiyondan çıkarılması gerektiğinde pop kullanılır. Çıkarma işlemi yalnızca son eklenen eleman için gerçekleştirilebilir.
Bir yığının özellikleri şunlardır:
- Öğe ekleme: O(1)
- silme öğesi: O(1)
- Erişim Süresi: O(n) [En Kötü Durum]
- Yalnızca bir uç, bir öğenin eklenmesine ve silinmesine izin verir.
Yığın örnekleri, özyinelemenin kaldırılmasını içerir. Bir kelimenin tersine çevrilmesi gereken senaryolarda veya editörler kullanılırken en son yazılan kelimenin ilk kaldırılacağı (bir geri alma işlemi kullanılarak) yığınlar kullanılır. İlginç veri yapısı projeleri denemek istiyorsanız, bu makaleyi okumak için tıklayın.
4. Sıra
Kuyruk, depolanacak öğelerin İlk Giren İlk Çıkar (FIFO) kuralına uyduğu veri yapısı türüdür. Elemanlar üzerinde gerekli işlemlerin yapılması için belirli bir sıra izlenir. Bir kuyruğun bir yığından farkı, en son eklenen nesnenin bir yığında ilk olarak kaldırıldığı bir öğenin kaldırılmasında yatmaktadır. Sıra durumunda ise, ilk eklenen öğe önce kaldırılır.
Veri yapısının hem sonu hem de verilerin eklenmesi ve çıkarılması için kullanılır. Kuyruk yapısını yöneten iki ana işlem kuyruğa alma ve kuyruğa alma işlemleridir. Sıraya alma, veri toplamaya bir öğenin eklenmesine izin verilen süreci ifade eder ve kuyruktan çıkarma, bu durumda kuyruktaki ilk öğe olan öğelerin kaldırılmasına izin verilen işlemi ifade eder.
Bir kuyruğun özellikleri şunlardır:
- Bir eleman ekleme: O(1)
- Bir öğeyi silme: O(1)
- Erişim Süresi: O(n)
Kuyruk örneği: Otobüs beklerken veya herhangi bir yerde yapılan kuyruklara benzer şekilde, veri yapısı da aynı kalıbı takip eder. Otobüsü bekleyen ve ilk sırada duran bir kişiyi kuyruğa ilk gelen kişi olarak düşünebiliriz. Bu kişi otobüse ilk binecek yani kuyruktan ilk çıkacak kişi olacaktır. Kuyruklar, birden fazla kullanıcı aynı kaynakları paylaştığında uygulanır ve sunucuda kimin önce geldiğine göre hizmet verilmesi gerekir.
Çözüm
Veri boyutunun artması, bilgisayar programlarında veri yapılarının verimli kullanılmasını zorunlu kılmıştır. Veriler yapılandırılmış bir şekilde düzenlenmezse, görevlerin öğeler üzerinde gerçekleştirilmesi zorlaşır.
Sorunsuz bir operasyon için, bilgisayar programları ile kolay ve etkili operasyonların gerçekleştirilebilmesi için organize edilmesi her zaman önemlidir. Veri öğeleri sıralı bir düzende düzenlenirse, doğrusal veri yapısı olarak bilinirken, veri öğeleri doğrusal olmayan bir şekilde düzenlenirse doğrusal olmayan bir yapı olarak adlandırılır.
Makine öğrenimi dillerinde, gerçek hayat problemlerinde vb. geniş bir veri yapısı uygulaması gözlemlenmiştir. Bu alanda çalışmayı hayal eden insanlar bu kavramlara hakim olmalıdır.
Daha fazlasını öğrenmek istiyorsanız, sizi başarılı veri bilimcilerine dönüştürmek için bir platform sağlayan Veri Biliminde upGrad Yönetici PG Programına göz atın. Herhangi bir orta seviye profesyonel için tasarlanan veri bilimi kursu, başarınız için gereken tüm teorik ve pratik bilgileri size sunacaktır. Başarı sadece bir tık uzaktayken neden diğer seçenekleri bekleyesiniz? Herhangi bir yardım gerekirse, size yardımcı olmaktan memnuniyet duyarız.
Aşağıda, doğrusal ve doğrusal olmayan veri yapıları arasındaki önemli farklar gösterilmektedir: Aşağıdaki noktalar, bağlantılı listelerin dizilerden çok daha verimli olduğu yolları ayrıntılı olarak açıklamaktadır: Tüm doğrusal veri yapılarında gerçekleştirilebilecek ortak olası işlemler arasında geçiş, ekleme, silme, değiştirme, arama işlemi ve sıralama işlemi bulunur.Doğrusal ve doğrusal olmayan veri yapıları arasındaki fark nedir?
Doğrusal Veri Yapısı -
1. Lineer veri yapılarında, her eleman bir sonraki ve önceki elemanlara referansla birbirine lineer olarak bağlıdır.
2. Uygulaması oldukça kolaydır, çünkü sadece tek bir seviye söz konusudur.
3. Bellek israfı, doğrusal veri yapılarında çok daha yaygındır.
4. Yığınlar, Kuyruklar, Diziler ve Bağlantılı listelerin tümü doğrusal veri yapılarının örnekleridir.
Doğrusal Olmayan Veri Yapısı -
1. Doğrusal olmayan veri yapılarında öğeler hiyerarşik bir şekilde bağlanır.
2. Uygulama, birden fazla seviye içerdiğinden çok daha karmaşıktır.
3. Bellek akıllıca tüketilir ve neredeyse hiç bellek israfı olmaz.
4. Grafikler ve ağaçlar, doğrusal olmayan veri yapılarının örnekleridir. Bağlantılı listeler hangi yönlerden dizilerden daha verimlidir?
a. Dinamik Bellek ayırma
Bağlantılı bir listenin belleği dinamik olarak yerleştirilmiştir, bu, boyutu başlatmaya gerek olmadığı ve herhangi bir dış işlem gerektirmeden herhangi bir zamanda genişletilebileceği ve küçültülebileceği anlamına gelir.
Öte yandan, diziler statik olarak tahsis edilir ve boyutun başlatılması gerekir. Boyut oluşturulduktan sonra değiştirilemez.
B. Ekleme ve Silme
Bağlantılı bir liste dinamik olarak oluşturulduğundan, ekleme ve silme gibi işlemler çok daha uygundur.
c . hafıza kaybı yok
Tüm öğeler dinamik olarak eklendiğinden bağlantılı bir listede bellek kaybı olmaz. Ve bir elemanın silinmesinden sonra hafızasını boşaltabiliriz. Doğrusal veri yapılarında gerçekleştirilen en yaygın işlemler nelerdir?
Bu işlemler, farklı veri yapılarında farklı isimlerle tanınır. Örneğin, ekleme ve silme işlemleri Stack'te Push ve Pop işlemleri olarak bilinirken, Queue'da kuyruğa alma ve kuyruğa alma işlemleri olarak adlandırılır.
Veri yapısının boş olup olmadığını kontrol etmek için birleştirme ve boş işlem gibi başka işlemler de olabilir.