stack-queue tr ok

Download Stack-queue Tr OK

Post on 24-Apr-2015

83 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

Yn ve Kuyruk

Yn ve Kuyruk / Sunum 2

Yn erikYn SVT Ynn temel ilemleriPushing, popping etc.

Ynn gerekletirilmesidizilerle balantl listelerle

Yn ve Kuyruk / Sunum 3

Yn SVTYn kstlanm bir liste olarak tanmlanabilir.ekleme ve silme sadece listenin tepesinden (top) yaplabilir.

Dier u alt (bottom) olarak isimlendirilir.

Temel lemler:Push: ekle ileminin edeeridir Pop: en son eklenen eleman siler Top: en son eklenen eleman pozisyonunu tutar.

Yn ve Kuyruk / Sunum 4

Yn SVTYnlarn esneklii snrldr.fakat uygulanmas daha etkili ve kolaydr.

Ynlar LIFO (Last In, First Out) listeler olarak bilinirler.Eklenen en son eleman, her zaman arlan ilk eleman olacaktr.

Yn ve Kuyruk / Sunum 5

Push ve PopBirincil ilemler : Push and Pop PushYnn tepesine bir eleman ekle

PopYnn tepesindeki eleman silbo yn push:eleman ekle top topA

push:yeni eleman ekleB A

pop

epe(top)

top

A

Yn ve Kuyruk / Sunum 6

Ynlarn GerekletirilmesiBir yn gerekletirmek iin herhangi bir liste gerekletirilmesi kullanlabilir.Diziler (statik: en bata ynn boyutu belirtilmeli) Balantl listeler (dinamik: asla dolmaz)

Dizi ve balantl liste gerekletirmeleri grlecek. ncelikle dizi gerekletirmesini grelim.

Yn ve Kuyruk / Sunum 7

Dizi GerekletirmesiEn bata dizi boyutunun belirtilmesi gerekir. Her ypnda TopOfStack bilgisi tutulur.bo bir yn iin , TopOfStack -1 olarak ayarlanr.

Push(1) TopOfStack deerini 1 arttr. (2) Yn[TopOfStack] = X atamasn yap.

Pop(1) Return deperine Stack[TopOfStack] olarak ayarla. (2) TopOfStack deerini 1 azalt.

Bu ilemler ok hzl yaplr. Karmakl sabit zamandr.

Yn ve Kuyruk / Sunum 8

Stack snfclass Stack { public: Stack(int size = 10); // constructor ~Stack() { delete [] values; } // destructor bool IsEmpty() { return top == -1; } bool IsFull() { return top == maxTop; } double Top(); void Push(const double x); double Pop(); void DisplayStack(); private: int maxTop; // max stack size = size - 1 int top; // current top of stack double* values; // element array };

Yn ve Kuyruk / Sunum 9

Stack snfStack in zelliklerimaxTop: ynn maksimum boyutu top: ynn tepesini gsteren indeks values: yn elemanlarn depolayan diziyi iaret eder.

Stack in ilemleriIsEmpty: eer yn bo ise true, dier durumda ise false dnderir. IsFull: yn dolu ise true, dier durumda ise false dnderir. Top: ynn tepe indeksinin dnderir. Push: ynn tepesine eleman ekler. Pop: ynn tepesinden eleman siler. DisplayStack: yndaki btn elemanlar ekrana yazar.

Yn ve Kuyruk / Sunum 10

Yn OluturmaStack n kurucusu (constructor)size kadar bir yn dizisi yeri ayr. Varsaylan (default) size = 10. Yn dolduunda, top maksimum deeri alacak, yani size 1. En bata top deeri -1 dir. Bu ynn bo olduunu gsterir.

Stack::Stack(int size /*= 10*/) { maxTop = size - 1; values = new double[size]; top = -1; } Kurucu yn dizisi iin dinamik olarak yer ayrmasna ramen, yn hala statiktir. Dizi boyutu balatldktan (initialization) sonra

Yn ve Kuyruk / Sunum 11

Yna Ekleme (Push)void Push(const double x);Ynn tepesine eleman ekle Eer yn dolu ise, hata mesaj ver. top her zaman en stteki eleman temsil eder. Bir eleman ekledikten sonra, top deerini 1 arttr.

void Stack::Push(const double x) { if (IsFull()) cout