Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

4. Helyes zárójelezés algoritmusa Kaszab Gábor. Az algoritmus célja: Eldönti egy zárójelezésről, hogy helyes-e Kiírja az összetartozó zárójelpárok sorszámait.

Hasonló előadás


Az előadások a következő témára: "4. Helyes zárójelezés algoritmusa Kaszab Gábor. Az algoritmus célja: Eldönti egy zárójelezésről, hogy helyes-e Kiírja az összetartozó zárójelpárok sorszámait."— Előadás másolata:

1 4. Helyes zárójelezés algoritmusa Kaszab Gábor

2 Az algoritmus célja: Eldönti egy zárójelezésről, hogy helyes-e Kiírja az összetartozó zárójelpárok sorszámait egymás mellé

3 Helyes zárójelezés A nyitó és csukó zárójelek száma megegyezik A zárójelezés bármely pontjában nagyobb vagy egyenlő a nyitózárójelek száma, mint a csukó zárójeleké

4 Az algoritmus működése Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Egy verem segítségével dolgozik A verem műveletei: -Empty(v) : létrehoz egy üres vermet -Push(v,i) : beteszi a verembe az i elemet -Pop(v,j) : kiveszi a veremből a legfelső elemet

5 Az algoritmus működése Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) Létrehoz egy üres vermet Az i-ben tároljuk az aktuális zárójel sorszámát, ami kezdéskor 0

6 Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) Az algoritmus működése Indít egy ciklust, addig, amíg a zárójelezést tartalmazó sorozat ki nem ürül A ciklusmag első lépéseként, kiveszi a sorozat első elemét, és beteszi az x változóba Az i számlálót növeli egyel

7 Az algoritmus működése Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) Egy elágazással megvizsgálja, hogy milyen zárójelet olvastunk ki a sorozatból -Nyitó zárójel esetén beteszi a sorszámát a verembe -Csukó zárójelnél pedig kiveszi a verem legfelső elemét és kiírja a képernyőre az i változó aktuális értékével együtt

8 Az algoritmus működése Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) Ha az algoritmus lefutása után is marad elem a veremben, a zárójelezés helytelen / pl.: ( ( ) / Ha a verem üres és a sorozat következő eleme „)”, a zárójelezés helytelen / pl.: ( ) ) /

9 Példa Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Az s sorozat: ( ( ) ) -A v verem: üres -Az i számláló: 0 Kezdeti értékek: Belelép a ciklusba, mert az s nem üres

10 Példa Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Az s sorozat: ( ) ) -A v verem: üres -Az x változó: ( -Az i változó: 1

11 Példa Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Az s sorozat: ( ) ) -A v verem: 1 -Az x változó: ( -Az i változó: 1

12 Példa -Az s sorozat: ) ) -A v verem: 1 -Az x változó: ( -Az i változó: 2 Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i)

13 Példa Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Az s sorozat: ) ) -A v verem: 1 2 -Az x változó: ( -Az i változó: 2

14 Példa -Az s sorozat: ) -A v verem: 1 2 -Az x változó: ) -Az i változó: 3 Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i)

15 Példa Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Az s sorozat: ) -A v verem: 1 -Az x változó: ) -Az i változó: 3 Kivette a verem legfelső elemét. Kiírja: 2-3

16 Példa Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Az s sorozat: üres -A v verem: 1 -Az x változó: ) -Az i változó: 4

17 Példa Zarojel(s) Empty(v); i:=o s ≠ ε Read(s,x); i:=i+1 x = „(”x = „)” Push(v,i) Pop(v,j) Write(j,i) -Az s sorozat: üres -A v verem: üres -Az x változó: ) -Az i változó: 4 Kiírja: 1-4 Mivel a sorozat kiürült, kilép a ciklusból és véget ér a algoritmus

18


Letölteni ppt "4. Helyes zárójelezés algoritmusa Kaszab Gábor. Az algoritmus célja: Eldönti egy zárójelezésről, hogy helyes-e Kiírja az összetartozó zárójelpárok sorszámait."

Hasonló előadás


Google Hirdetések