53
1703317 Veri Yapıları Ve Algoritmalar Sunu 1

1703317 Veri Yapıları Ve Algoritmalar

  • Upload
    maina

  • View
    94

  • Download
    0

Embed Size (px)

DESCRIPTION

1703317 Veri Yapıları Ve Algoritmalar. Sunu 1. Veri-Bilgi. - PowerPoint PPT Presentation

Citation preview

Page 1: 1703317 Veri Yapıları Ve Algoritmalar

1703317 Veri Yapıları Ve Algoritmalar

Sunu 1

Page 2: 1703317 Veri Yapıları Ve Algoritmalar

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

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

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

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

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

Belleğin Yapısı Ve Veri Yapıları

Page 8: 1703317 Veri Yapıları Ve Algoritmalar

Temel/İlkel (Primitive) Veri Yapıları

char blok=’A’;

int agirlik=10;

float uzunluk=27.5;

Page 9: 1703317 Veri Yapıları Ve Algoritmalar

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

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

‘&’ Adres Operatörü ve ‘*’ Pointer’inTemel/İlkel (Primitive) Veri Yapılarında Kullanımı

Page 12: 1703317 Veri Yapıları Ve Algoritmalar

‘&’ Adres Operatörü ve ‘*’ Pointer’in Basit (Simple) Veri Yapılarında Kullanımı

Page 13: 1703317 Veri Yapıları Ve Algoritmalar

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

LİSTELERBir Bağlı Doğrusal Listenin Bellekteki Yapısı struct node { int data; node* link;

};

Page 15: 1703317 Veri Yapıları Ve Algoritmalar

node, liste(list), null(nill)

Page 16: 1703317 Veri Yapıları Ve Algoritmalar

Bir Bağlı Doğrusal Liste Tanımlamak

Page 17: 1703317 Veri Yapıları Ve Algoritmalar

void dumplist(node* list)

Page 18: 1703317 Veri Yapıları Ve Algoritmalar

node* newnode()

Page 19: 1703317 Veri Yapıları Ve Algoritmalar

node* last(node* list)

Page 20: 1703317 Veri Yapıları Ve Algoritmalar

void addhead(node* node_, node*& list)

Page 21: 1703317 Veri Yapıları Ve Algoritmalar

void concatenate(node*& l1, node* l2)

Page 22: 1703317 Veri Yapıları Ve Algoritmalar

node* cons(int data_)

Page 23: 1703317 Veri Yapıları Ve Algoritmalar

node* copy(node* list)

Page 24: 1703317 Veri Yapıları Ve Algoritmalar

node* locate(int data_, node* list)

Page 25: 1703317 Veri Yapıları Ve Algoritmalar

bool member(node* node_, node* list)

Page 26: 1703317 Veri Yapıları Ve Algoritmalar

node* cuthead(node*& list)

Page 27: 1703317 Veri Yapıları Ve Algoritmalar

void free(node*& list)

Page 28: 1703317 Veri Yapıları Ve Algoritmalar

bool advance(node*& point)

Page 29: 1703317 Veri Yapıları Ve Algoritmalar

bool deletenode(node* node_, node*& list)

Page 30: 1703317 Veri Yapıları Ve Algoritmalar

fonksiyonların örnek kullanımı

Page 31: 1703317 Veri Yapıları Ve Algoritmalar

İki Bağlı Doğrusal Liste Tanımlamak

Page 32: 1703317 Veri Yapıları Ve Algoritmalar

void dumplist(node* list)

Page 33: 1703317 Veri Yapıları Ve Algoritmalar

node* newnode()

Page 34: 1703317 Veri Yapıları Ve Algoritmalar

node* last(node* list)

Page 35: 1703317 Veri Yapıları Ve Algoritmalar

void addhead(node* node_, node*& list)

Page 36: 1703317 Veri Yapıları Ve Algoritmalar

void concatenate(node*& l1, node* l2)

Page 37: 1703317 Veri Yapıları Ve Algoritmalar

node* cons(int data_)

Page 38: 1703317 Veri Yapıları Ve Algoritmalar

node* copy(node* list)

Page 39: 1703317 Veri Yapıları Ve Algoritmalar

node* locate(int data_, node* list)

Page 40: 1703317 Veri Yapıları Ve Algoritmalar

bool member(node* node_, node* list)

Page 41: 1703317 Veri Yapıları Ve Algoritmalar

node* cuthead(node*& list)

Page 42: 1703317 Veri Yapıları Ve Algoritmalar

void free(node*& list)

Page 43: 1703317 Veri Yapıları Ve Algoritmalar

bool advance(node*& point)

Page 44: 1703317 Veri Yapıları Ve Algoritmalar

bool deletenode(node* node_, node*& list)

Page 45: 1703317 Veri Yapıları Ve Algoritmalar

İki Bağlı Dairesel Liste Tanımlama

Page 46: 1703317 Veri Yapıları Ve Algoritmalar

void dumplist(node* list)

Page 47: 1703317 Veri Yapıları Ve Algoritmalar

node* newnode()

Page 48: 1703317 Veri Yapıları Ve Algoritmalar

node* last(node* list)

Page 49: 1703317 Veri Yapıları Ve Algoritmalar

void addhead(node* node_, node*& list)

Page 50: 1703317 Veri Yapıları Ve Algoritmalar

void concatenate(node*& l1, node* l2)

Page 51: 1703317 Veri Yapıları Ve Algoritmalar

node* cons(int data_)

Page 52: 1703317 Veri Yapıları Ve Algoritmalar

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

Listeler ile Recursive fonksiyon uygulamaları