Veri Tipi ve Veri Yapısı Arasındaki Fark Nedir?

Veri yapısı nedir Python üzerinden örnek verebilir misiniz?
Veri tipi nedir Python üzerinden örnek verebilir misiniz?
Veri yapısı ve veri tipi aynı şeyler midir? Değillerse aralarındaki fark nedir?

Veri tipi basit olarak compilere veya interpretere programcının veriyi nasıl kullanacağından bahsetmesidir.

Veri yapısı ise bilgisayarda veriyi etkin olarak saklamamızı sağlar.

Basit olarak açıklanması bundan ibarettir.

1 Beğeni

Basit değil de daha detaylı cevap verebilirseniz daha işlevsel olur bu durumda çünkü hocam her yerde kısa cümleler ile anlatılmış. Farkındayım bilgisayar bilimlerine giriyor bu soru, ama bir yerde veri yapısına örnek olarak string verilirken diğer yerde list veriliyor.

str, list, tuple, dict, set birer veri tipi olduğu kadar bir çok veri tipini depolayabildikleri için veri yapısına örnek de oluştururlar. Özetle len fonksiyonu kullanılabilir her veri tipi aslında bir veri yapısıdır da. Yanlışım varsa düzeltin lütfen.

1 Beğeni

Sorumda tutarlı ve net olmadığımı fark ettim, soruyu güncelledim hocam. Cevabınız ile aklımda veri yapısına dair şekilllenmeler oluştu fakat tam anlayamadım. O yüzden sorumu daha yalınlaştırdım.

Veri yapısı; bir veya bir kaç veri tipini kendi bünyesinde tutabilen, depolayabilen veri tipleridir.

Örnek:

a = [1, "merhaba", {"a": 2}]
b = {"a": [1, 2, 3], "b": {"c": 1}}
c = (1, 2, "a", ["hello", "world"])
d = "1a2b3c4d"

Burada gördüğünüz gibi, bir veri yapısı, bir çok veri tipini kendi içerisinde barındırabilir.

Veri tipi; özellikleri bakımından başka verilerden ayırt edilebilir bir veri sınıfına karşılık gelir. str, int, float, complex, list, dict, tuple, set, frozenset, bytes… bunların hepsi veri tipidir. Ve her veri tipinin kendine göre bir takım metotları bulunur.

Hayır, aynı şey değil. Yukarıda gösterdiğim gibi bazı veri tipleri aynı zamanda veri yapısı iken; int, float, complex gibi veri tipleri veri yapısı değildir. O halde her veri yapısı bir veri tipidir. Ama her veri tipi bir veri yapısı değildir.

1 Beğeni

Benim bundan anladığım data structures yani heap, stack, queue, tree, linked list gibi eldeki veriyi işlemek için daha etkili yollar sunan yapılar.

heapq var heap yapısına karşılık geliyor
collections.deque var queue ve stack için uygun

1 Beğeni

Veri tipi bir dildeki degerlerin alabilecegi tip.
Veri yapisi bir algoritmanin kullanacagi degerlerin saklanacagi yapi.

Aralarindaki fark farkli soyutlama seviyelerinde olmalari. Bir dilin veri tipleri calismak icin kimi veri yapilarini kullanabilecekleri gibi, veri yapilari bir dilde yazilabilmek icin veri tipleri kullanmak zorundalar.

5 Beğeni

Farkettim. Fakat şu konu başlığı altında yeterli İngilizceniz varsa çok güzel açıklanmış:

Eğer yeterli İngilizce bilginiz yoksa burada belirtirseniz müsait olduğumda çevirip buraya yazayım :slight_smile:

Kolay gelsin.

1 Beğeni

Konuya atılan mesajlar ve netteki araştırlarımı toparlarsam cevap şu şekilde;

Veri Tipi: Bir değişkende hangi tür verilerin saklanabileceğini tanımlar ve bunun üzerinde hangi tür işlemlerin gerçekleştirilebileceğine ilişkin kuralları belirler. Bu guruplandırma/sınıflandırma sayesinde verilerin RAM üzerinde işlenmesi ve tutulması mümkün hale gelir.

Veri Yapısı: Özellikle farklı tipteki verilerin RAM üzerinde guruplandırılarak/sınıflandırılarak tutulmasını sağlarken dediği veriyi işlemek için daha etkili yollar sunan yapılardır.
Veri yapıları ikiye ayrılıyor ilkel ve ilkel olmayanlar. datacamp üzerinden aldığım görsel ile veri yapılarını görebilirsiniz.

tuple, list, dictionary, set bunlar aynı zamanda veri tipi değil mi? Python’da her veri yapısı aynı zamanda bir veri tipidir de.

1 Beğeni

Python has the following data types built-in by default, in these categories:

Text Type: str
Numeric Types: int, float, complex
Sequence Types: list, tuple, range
Mapping Type: dict
Set Types: set, frozenset
Boolean Type: bool
Binary Types: bytes, bytearray, memoryview

https://www.w3schools.com/python/python_datatypes.asp

1 Beğeni

Cevabı bilmediğim için ve kaynaklarda denk gelmediği için cevaba eklmemiştim hocam, tam olarak ifade ettiğiniz gibiymiş cevabınız için tekrar teşekkür ederim.

1 Beğeni