• Sonuç bulunamadı

Week 7. Düğüm bulma Tekli bağlı liste: phead ve ptail Dairesel bağlı liste Çift bağlı liste

N/A
N/A
Protected

Academic year: 2022

Share "Week 7. Düğüm bulma Tekli bağlı liste: phead ve ptail Dairesel bağlı liste Çift bağlı liste"

Copied!
32
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Week 7

Düğüm bulma

Tekli bağlı liste: pHead ve pTail Dairesel bağlı liste

Çift bağlı liste

(2)

Düğüm bulma

While kullanarak Loop kullanarak

(3)

Düğüm bulma: While döngüsü ile

Node* temp;

temp=pHead;

while (temp->data!=Xvalue) while (temp->data!=Xvalue)

temp=temp->next;

=========================================

Node* temp;

temp=pHead;

while (temp!=NULL && temp->data!=Xvalue) temp=temp->next;

Aranan eleman listede varken

(4)

Düğüm bulma: for döngüsü ile

for (Node* temp=pHead;temp->data!=Xvalue; temp=temp->next)

;

(5)

3. Tekli Bağlı Liste: pHead ve pTail

Listeyi pHead ile yönetmekle aynıdır

Dikkatli olunması gereken: pTail değerinin değişme durumları

değişme durumları

Sona yeni bir düğüm ekleme (insert değil add)

Sondan bir düğüm silme

(6)

3. Tekli Bağlı Liste: pHead ve pTail

pTail ne zaman değişir?

Liste başına bir düğüm eklenince

pTail=NULL // Liste boşken pHead =

data Link

pTail=NULL // Liste boşken pHead =

pHead= pTail // listede bir eleman varken

data Link data Link

pHead pTail

Yeni bir eleman eklenince

(7)

3. Tekli Bağlı Liste: pHead ve pTail

pTail ne zaman değişir?

Sona bir düğüm eklendiği zaman

pTail=NULL pHead =

data Link

pTail=NULL pHead =

pHead= pTail

pHead pTail

(8)

3. Tekli Bağlı Liste: pHead ve pTail

pTail ne zaman değişir?

Bir düğümden sonra bir başka düğüm eklenince

pTail=NULL pHead =

data Link

pTail=NULL pHead =

pHead= pTail

data Link data Link

pHead pTail

data Link

(9)

3. Tekli Bağlı Liste: pHead ve pTail

pTail ne zaman değişir?

Düğüm silince

pTail=NULL pHead =

data Link

pTail=NULL pHead =

pHead= pTail

pHead pTail

(10)

4. Dairesel bağlı liste

Dairesel

Son düğüm ilk düğümü işaret eder Daire gibi çizilir

Daire gibi çizilir

Dairesel bağlı liste kullanıldığında

Listedeki her düğüm aynı pozisyondadır

Head ve Tail ihtiyacı yoktur

(11)

4. Dairesel bağlı liste

Dairesel bağlı listenin kontrolü: düğüm ekle

pHead =NULL

data Link

pHead

pHead

(12)

4. Dairesel bağlı liste

Dairesel bağlı liste kontrolü : ekleme adımları

data Link data Link

pHead

data Link data Link data Link data Link data Link

data Link data Link data Link data Link

data Link data Link data Link data Link

(13)

4. Dairesel bağlı liste

Dairesel bağlı liste kontrolü: düğüm sil

pHead =NULL

data Link

pHead

pHead

(14)

4. Dairesel bağlı liste

Örnek:

Bir düğümü silecek fonksiyonu yazınız

pHead ve pTail kullanarak dairesel bağlı liste

pHead ve pTail kullanarak dairesel bağlı liste yapınız.

(15)

4. Çift bağlı liste

Struct Node {

Int data;

Node *next;

Node * pre;

};

(16)

4. Çift bağlı liste

Yeni düğüm ekleme

Başa, sona, bir düğümden sonraya

Düğüm silme Düğüm silme

Baştan, sondan, ortadan

(17)

4. Çift bağlı liste

Yeni düğüm ekle: bir düğümden sonra

data data

data

data data

data

data data

data data

data

(18)

4. Double Linked List

Remove node: steps

data data

data data

data data

data data

data data

data data

(19)

4. Çift bağlı liste

Örnek

İlk düğümü silmek için bir fonksiyon yazın (pHead)

(pHead)

Bir düğümden sonraki düğümü silmek için bir fonksiyon yazınız

(20)

Week 8

Alıştırmalar

Tekrar : dosyalar Tekrar : dosyalar Tekrar : string

Alıştırmalar

(21)

C/C++ programlama tekrarı

1. stringlerle çalışma

2. dosyalarla çalışma : dosya okuma/yazma 3. alıştırma 6

(22)

1. String: yapısı

String

Karakterlerin dizisidir

Null (\0) karakteri ile sonlanır

Null (\0) karakteri ile sonlanır

Metin sonuna string karakteri C ve C++’da otomatik olarak eklenir.

(23)

1. String: tanımlama

String tanımlama

Karakter dizisizi kullanarak

char str[] = {‘H’,’e’,’l’,’l’,’o’,’\0’}; //null ile birlikte tanımla char str[] = {‘H’,’e’,’l’,’l’,’o’,’\0’}; //null ile birlikte tanımla char str[] = “Hello”; //null olmadan tanımla

Karakter pointer kullanarak

char *str = “Hello”;

(24)

1. String: giriş

char *gets(char *s);

Her bir karakteri oku

Enter tuşuna gelene kadar

Enter tuşuna gelene kadar

Metin sonuna otomatik olarak ‘\0’ ekle

cin>>s;

(25)

1. String: çıkış

int puts(const char *s);

cout<<s;

(26)

1. String: tampon problemi?

Keyboard buffer

char szKey[] = "aaa";

char s[10];

char s[10];

do {

cout<<“ bir metin gir…";

gets(s);

} while (strcmp (szKey,s) != 0);

puts ("OK. corect");

Eğer kullanıcı “aaaaaaaaaaaaa” metni girerse???

(27)

1. String: functions

#include <string.h>

strcpy(s1, s2) strcat(s1, s2) strlen(s1)

strcmp(s1, s2) -> (-1,0,1) strchr(s1, ch)

strstr(s1, s2)

(28)

1. String: function examples

char s1[80], s2[80];

cout << "Input the first string: :";

gets(s1);

cout << "Input the second string: ";

gets(s2);

cout << "Length of s1= " << strlen(s1);

cout << "Length of s2= " << strlen(s2);

if(!strcmp(s1, s2)) if(!strcmp(s1, s2))

cout << "These strings are equal\n";

strcat(s1, s2);

cout << "s1 + s2: " << s1 << endl;;

strcpy(s1, "This is a test.\n");

cout << s1;

if(strchr(s1, 'e')) cout << "e is in " << s1;

if(strstr(s2, "hi")) cout << "found hi in " <<s2;

(29)

2. File: yeni bir dosya oluşturma

#include <io.h>

FILE *fp;

fp=fopen(“d:\\test.txt", "wb"))

fwrite(&Address, sizeof(TYPE), count, fp);

fclose(fp);

(30)

2.File: yeni bir dosya oluşturma

int Arr[3]

Arr

Fwrite(Arr, sizeof(int), 1, fp);

fwrite(Arr, sizeof(Arr), 1, fp);

Fwrite(&Arr[i], sizeof(int), 1, fp);

for (i=0;i<=3;i++)

(31)

2. File: Reading a file

#include <io.h>

FILE *fp;

fp=fopen(“d:\\test.txt", “rb")) fp=fopen(“d:\\test.txt", “rb"))

while (fwrite(&Address, sizeof(TYPE), count, fp)) {

……….

}

fclose(fp);

(32)

3.Excercises

Exercise 6

Referanslar

Benzer Belgeler

GÜVENLİK GÖREVLİSİ ASİL LİSTE. GÜVENLİK GÖREVLİSİ

Suçluların İadesine Dair Avrupa Sözleşmesine Ek Protokol 2a Suçluların İadesine Dair Avrupa Sözleşmesine Ek İkinci Protokol 2b Suçluların İadesine Dair Avrupa Sözleşmesi

[r]

[r]

atema Sosyal Bilimler2 Fen Bilimleri YKS TOPLA TYT Toplamlar SÖZ.

[r]

YILMAZ, IŞIKCAN 93 Ankara Büyük Kolej Spor Kulübü 27.73 485 Türkiye Kış Şampiyonası Katılım Barajını Geçti.. AKSOY, ARTUN 93 Bursa Kolejliler Spor Kulübü

ÜRÜN KODU GRUBU / ÜRÜN TANIMI ve TEKNİK DETAYLARI. BMC