1703317 Veri Yapıları Ve Algoritmalar
description
Transcript of 1703317 Veri Yapıları Ve Algoritmalar
![Page 1: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/1.jpg)
1703317 Veri Yapıları Ve Algoritmalar
Sunu 1
![Page 2: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/2.jpg)
Veri-Bilgi
• Veri: Bilgisayar ortamında sayısal, alfasayısal veya mantıksal biçimlerde ifade edilebilen her türlü değer (Örn; 10, -2, 0 tamsayıları, 27.5, 0.0256, -65.253 gerçel sayıları, ‘A’, ‘B’ karakterleri, “Yağmur”, “Merhaba” karakter katarları, 0, 1 mantıksal değerleri, ses ve resim sinyalleri vb.) bir veridir.
• Bilgi: Verinin işlenmiş ve bir anlam ifade halidir. Örn; 10 kg, -2 derece, 0 noktası anlamlarındaki tamsayılar, 27.5 cm, 0.0256 gr, -65.253 volt anlamlarındaki gerçel sayılar, ‘A’ bina adı, ‘B’ sınıfın şubesi anlamlarındaki karakterler, “Yağmur” öğrencinin ismi, “Merhaba” selamlama kelimesi karakter katarları, boş anlamında 0, dolu anlamında 1 mantıksal değerleri, anlamı bilinen ses ve resim sinyalleri verilerin bilgi haline dönüşmüş halleridir.
![Page 3: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/3.jpg)
ANSI/ISO Standardına göre C dilinin veri tipleri/yapıları Tipi Bit Boyutu Tanım Aralığı
char 8 -127 – 127
unsigned char 8 0 – 255
signed char 8 -127 – 127
int 16 veya 32* -32,767 – 32,767
unsigned int 16 veya 32* 0 – 65,535
signed int 16 veya 32* -32,767 – 32,767
short int 16 -32,767 – 32,767
unsigned short int 16 0 – 65,535
signed short int 16 -32,767 – 32,767
long int 32 -2,147,483,647 – 2,147,483,647
signed long int 32 -2,147,483,647 – 2,147,483,647
unsigned long int 32 0 – 4,294,967,295
float 32 3.4x10-38 – 3.4x10+38
double 64 1.7x10-308 – 1.7x10+308
![Page 4: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/4.jpg)
Veri Yapısı
• Verileri tanımlayan veri tiplerinin, birbirleriyle ve hafızayla ilgili tüm teknik ve algoritmik özellikleridir.
VERİ YAPILARI
treegraph
stackqueuelist
DOĞRUSAL(LINEAR)
arraystringstructureunion
integerfloatbooleanchar
TEMEL/İLKEL(PRIMITIVE)
BASİT(SIMPLE)
BİRLEŞİK(COMPOUND)
DOĞRUSAL OLMAYAN(NON-LINEAR)
![Page 5: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/5.jpg)
Veri Yapıları Algoritmaları
• Program, işlemci ve işletim sistemi her veri yapısına ait verileri, farklı biçim ve teknikler kullanarak, bellekte yazma ve okuma işlemleriyle uygulamalara taşırlar. Bu işlemlere kısaca Veri Yapıları Algoritmaları denir.
• programlama esnekliği sağlar, • bilgisayar donanım ve kaynaklarından en etkin
biçimde faydalanma olanakları sunar, • programın hızını, etkinliğini arttırır, • maliyetini düşürür.
![Page 6: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/6.jpg)
Veriden Bilgiye Geçiş
HAM VERİ = 0100 0010 0100 0001 0100 0010 0100 0001
ASCII VERİYAPISINA DÖNÜŞEN BİLGİ = 0100 0010 0100 0001 0100 0010 0100 0001 B A B A
BCD VERİYAPISINA DÖNÜŞEN BİLGİ = 0100 0010 0100 0001 0100 0010 0100 0001 4 2 4 1 4 2 4 1
16 BIT TAMSAYI VERİYAPISINA DÖNÜŞEN BİLGİ = 0100 0010 0100 0001 0100 0010 0100 0001 16961 16961
32 BIT TAMSAYI VERİYAPISINA DÖNÜŞEN BİLGİ = 0100 0010 0100 0001 0100 0010 0100 0001 1111573057
![Page 7: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/7.jpg)
Belleğin Yapısı Ve Veri Yapıları
![Page 8: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/8.jpg)
Temel/İlkel (Primitive) Veri Yapıları
char blok=’A’;
int agirlik=10;
float uzunluk=27.5;
![Page 9: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/9.jpg)
Basit (Simple) Veri Yapıları
int agirlik [6];
struct kayit {char cinsiyet; char ad [ ]; int yas; float kilo; } ogrenci;
char selam []=“Merhaba”;veya char selam []={‘M’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’,‘\0’};
![Page 10: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/10.jpg)
Birleşik (Compound) Veri Yapıları
• Basit (Simple) veri yapılarından “dizi” veya “structure”,
• nesne yönelimli programlamanın “sınıf/class” veri yapılarından
![Page 11: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/11.jpg)
‘&’ Adres Operatörü ve ‘*’ Pointer’inTemel/İlkel (Primitive) Veri Yapılarında Kullanımı
![Page 12: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/12.jpg)
‘&’ Adres Operatörü ve ‘*’ Pointer’in Basit (Simple) Veri Yapılarında Kullanımı
![Page 13: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/13.jpg)
Yaygın Olarak Kullanılan Veri Yapıları Algoritmaları • LİSTELER
– Bir Bağlı Doğrusal Listeler– Bir Bağlı Dairesel Listeler– İki Bağlı Doğrusal Listeler– İki Bağlı Dairesel Listeler
• LİSTELER İLE STACK (YIĞIT) TASARIMI• LİSTELER İLE QUEUEE (KUYRUK) TASARIMI• LİSTELER İLE DOSYALAMA UYGULAMASI• ÇOK BAĞLI LİSTELER• AĞAÇLAR• MATRİSLER• ARAMA ALGORİTMALARI• SIRALAMA ALGORİTMALARI• GRAFLAR
![Page 14: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/14.jpg)
LİSTELERBir Bağlı Doğrusal Listenin Bellekteki Yapısı struct node { int data; node* link;
};
![Page 15: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/15.jpg)
node, liste(list), null(nill)
![Page 16: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/16.jpg)
Bir Bağlı Doğrusal Liste Tanımlamak
![Page 17: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/17.jpg)
void dumplist(node* list)
![Page 18: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/18.jpg)
node* newnode()
![Page 19: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/19.jpg)
node* last(node* list)
![Page 20: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/20.jpg)
void addhead(node* node_, node*& list)
![Page 21: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/21.jpg)
void concatenate(node*& l1, node* l2)
![Page 22: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/22.jpg)
node* cons(int data_)
![Page 23: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/23.jpg)
node* copy(node* list)
![Page 24: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/24.jpg)
node* locate(int data_, node* list)
![Page 25: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/25.jpg)
bool member(node* node_, node* list)
![Page 26: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/26.jpg)
node* cuthead(node*& list)
![Page 27: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/27.jpg)
void free(node*& list)
![Page 28: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/28.jpg)
bool advance(node*& point)
![Page 29: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/29.jpg)
bool deletenode(node* node_, node*& list)
![Page 30: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/30.jpg)
fonksiyonların örnek kullanımı
![Page 31: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/31.jpg)
İki Bağlı Doğrusal Liste Tanımlamak
![Page 32: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/32.jpg)
void dumplist(node* list)
![Page 33: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/33.jpg)
node* newnode()
![Page 34: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/34.jpg)
node* last(node* list)
![Page 35: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/35.jpg)
void addhead(node* node_, node*& list)
![Page 36: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/36.jpg)
void concatenate(node*& l1, node* l2)
![Page 37: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/37.jpg)
node* cons(int data_)
![Page 38: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/38.jpg)
node* copy(node* list)
![Page 39: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/39.jpg)
node* locate(int data_, node* list)
![Page 40: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/40.jpg)
bool member(node* node_, node* list)
![Page 41: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/41.jpg)
node* cuthead(node*& list)
![Page 42: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/42.jpg)
void free(node*& list)
![Page 43: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/43.jpg)
bool advance(node*& point)
![Page 44: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/44.jpg)
bool deletenode(node* node_, node*& list)
![Page 45: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/45.jpg)
İki Bağlı Dairesel Liste Tanımlama
![Page 46: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/46.jpg)
void dumplist(node* list)
![Page 47: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/47.jpg)
node* newnode()
![Page 48: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/48.jpg)
node* last(node* list)
![Page 49: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/49.jpg)
void addhead(node* node_, node*& list)
![Page 50: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/50.jpg)
void concatenate(node*& l1, node* l2)
![Page 51: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/51.jpg)
node* cons(int data_)
![Page 52: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/52.jpg)
Uygulama
• Turbo C ile yazılan rehber programının incelenmesi
• Bir bağlı doğrusal listeler simülasyonunun incelenmesi
![Page 53: 1703317 Veri Yapıları Ve Algoritmalar](https://reader033.fdocuments.net/reader033/viewer/2022061510/568139a0550346895da13c25/html5/thumbnails/53.jpg)
Listeler ile Recursive fonksiyon uygulamaları