Algoritmusok és adatszerkezetek II.
|
|
- Brigitta Biró
- 9 évvel ezelőtt
- Látták:
Átírás
1 Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar
2 3. Kiegyensúlyozott keresőfák A T tulajdonság magasság-egyensúlyozó tulajdonság, ha: 1. ( c R)( F)(T (F) h(f) c lg( F ) 2. T fenntartható Bővítés és Törlés során: Bovit, Torol után O(h(F)) időben helyreállítható. Következmény: F = n esetén Keres, Bovit, Torol : T lr (n) = O(lg n)
3 3.1. AVL-fák (Adelson-Velskij, Landis, 1962) Definíció. A P F pont (magasság-)egyensúlya: Egy(P) = h(job(p)) h(bal(p)) Definíció. Az F binfa AVL-fa, ha ( P F)( 1 Egy(P) 1) 3.1. tétel. Ha F AVL-fa, akkor h(f) 1.44 lg(n + 1); F = n Bizonyítás. Legyen N m az m magasságú, legkevesebb pontot tartalmazó AVL-fa pontjainak száma, azaz, N m F, ha F AVL-fa és h(f) = m N 0 = 0, N 1 = 1, N 2 = 2 N m = 1 + N m 2 + N m 1, ha m > 1 N m + 1 = (N m 2 + 1) + (N m 1 + 1) Jelölje B i := N i + 1 értéket. Tehát B 0 := 1,B 1 := 2,,B m = B m 2 + B m 1 (m > 1)? Φ m B m alsó korlátot keresünk. Tfh. 1 = Φ 0 B 0, Φ 1 B 1 és ha 2,,m 1-ig áll az B m = B m 2 + B m 1 Φ m 2 + Φ m 1 = Φ m 2 (1 + Φ) Ha (1 + Φ) Φ 2, akkor B m Φ m 2 (1 + Φ) Φ m 2 Φ 2 = Φ m De a Φ 2 = (1 + Φ) azaz (Φ 2 Φ 1 = 0) egyenlet megoldása: Φ = Φ m B m = N m + 1 n + 1 m lgφ lg(n + 1) h(f) = m lgφ 1 lg(n + 1) = 1.44 lg(n + 1)
4 A Bovit és Torol műveletek megvalósítása: 1. közönséges bővítés/törlés; 2. AVL tulajdonság helyreállítása a keresőúton visszafelé haladva lokális forgatásokkal. Legyen U = P 0,P 1,,P m a gyökértől P m -ig vezető út az F bináris fában és X adatelem; F = P 0 P i+1 = Bal(P i ) P i+1 = Jobb(P i ). Definíció. Az U pontsorozat X-keresőút, ha 1. X < Adat(P i ) P i+1 = Bal(P i ) és X Adat(P i ) P i+1 = Jobb(P i )(i < m) 2. Vagy Adat(P m ) = X és ( i < m)(adat(p i ) X) vagy ( i m)(adat(p i ) X) és X < Adat(P m ) Bal(P m ) = és X Adat(P m ) Jobb(P m ) = Definíció. U X-bővítőút, ha 1. X < Adat(P i ) P i+1 = Bal(P i ) és X Adat(P i ) P i+1 = Jobb(P i )(i < m) 2. X < Adat(P m ) Bal(P m ) = és X Adat(P m ) Jobb(P m ) =
5 Definíció. U X-törlőút, ha 1. ( 0 t m)(adat(p t ) = X) és P 0,,P t X-keresőút 2. t = m és Bal(P t ) = Jobb(P t ) = vagy Bal(P t ) Jobb(P t ) és P t+1 = Jobb(P t ),P i+1 = Bal(P i )(t < i < m)
6 Tfh. P az X-bővítőút (X-törlőút) egy pontja és Bővítésnél: X Adat(P) és h(jobb(p)) nőtt Törlésnél: X < Adat(P)és h(bal(p)) csökkent. Bovit(P,x) a P Torol(Q,x) a P P α β α β 1. ábra. Fa magasságának változása bővítés és törlés hatására Művelet előtt Művelet után Egy(P) = 1 Egy(P) = 0, új h(p) = h(p) Egy(P) = 0 Egy(P) = 1, új h(p) = h(p) + 1 Egy(P) = +1 Egy(P) = 2, forgatni kell! új h(p) =?
7 a P BForgat(P) JForgat(Q) b Q b Q a P α γ β γ α β 2. ábra. Az egyszerű balra/jobbra forgatás megőrzi a keresőfa tulajdonságot Állítás. Az egyszerű balra és jobbra forgatás megőrzi a keresőfa tulajdonságot. Bizonyítás. Az F fa akkor és csak akkor keresőfa, ha az inoreder bejárása rendezett sorozatot ad. Az Inorder(F)=<F> jelöléssel: < F >=< α >,a,< β >,b,< γ > < F >=< α >,a,< β >,b,< γ >
8 3.2. A forgatás utáni egyensúly és magasság kiszámítása Tfh. az F fát bővítettük az x adattal. Legyen P az x-bővítőút egy pontja, és a bővítés P-nek a Q-gyökerű jobb-részfájába történt. Továbbá, Q magassága növekedett, és így Egy(P) = 2 lett. Ha a bővítés és AVL-egyensúly helyreállítás után Egy(Q) 0, akkor egyetlen balra forgatás helyreállítja az egyensúlyt. Hogyan változik a részfa magassága?
9 a P 2 α b 0 1 Q h + 2 h + 3 h β h + 1 h + 1 h h + 1 γ h + 2 h + 1 α a 1 0 P b 1 0 β h h + 1 h Q γ h + 1 h + 1 h + 3 h ábra. 1.a eset: AVL egyensúly helyreállítása egyszerű balra forgatással. Ha Egy(Q) = 1 a magasság csökken. Ha Egy(Q) = 0 nem csökken; csak törlés esetén lehet.
10 b 2 P h + 2 α a 1 0 Q β γ h h + 3 h + 1 h + 1 h h + 1 α h + 1 h + 1 a 0 1 Q b 0 1 P h + 1 h + 2 h + 2 h + 3 β γ h h + 1 h 4. ábra. 2.a eset: AVL egyensúly helyreállítása egyszerű jobbra forgatással. Ha Egy(Q) = 1 a magasság csökken. Ha Egy(Q) = 0 nem csökken; csak törlés esetén lehet.
11 Helyreállítás kettős balra forgatással Feltétel: Egy(P) = 2,Egy(Q) = 1
12 a P 2 α h b R c 1 Q δ h h + 2 h + 3 β γ h h 1 h h 1 h h b R 0 a P c Q h + 1 h + 2 α β γ δ h h h 1 h h h h 1 h 5. ábra. 1.b eset: AVL egyensúly helyreállítása kettős balra forgatás.
13 U jegy(p) = Max(Egy(R), 0) U jegy(q) = Min(Egy(R), 0) U jegy(r) = 0 Egy(R) U jegy(p) U jegy(q)
14 Helyreállítás kettős jobbra forgatással Feltétel: Egy(P) = 2,Egy(Q) = +1
15 c P 2 a Q h + 2 α h +1 δ b R 1 h 0 1 β γ h h 1 h h 1 h h h + 3 b R 0 h + 1 a Q c P h + 1 h + 2 α β γ δ h h h 1 h h h h 1 h 6. ábra. 1.b eset: AVL egyensúly helyreállítása kettős jobbra forgatás.
16 U jegy(p) = Min(Egy(R), 0) U jegy(q) = Max(Egy(R), 0) U jegy(r) = 0 Egy(R) U jegy(p) U jegy(q)
17 Megvalósítás public class AVLFaPont<E extends Comparable<E>> extends BinKerFaPont<E>{ byte egy; public AVLFaPont(E x, AVLFaPont<E> b, AVLFaPont<E> j ){ super(x,b,j); public AVLFaPont(){ super(); public class BinKerFaAVL<E extends Comparable<E>> extends BinKerFa<E>{ public BinKerFaAVL(){ super();
18 public boolean Bovit(E x, boolean tobb){ AVLFaPont<E> p =(AVLFaPont<E>) gyoker; AVLFaPont<E> pp; int ken; if (p == null) { gyoker = new AVLFaPont<E>(x,null,null); return true; pp=p; while (p!= null) { ken = x.compareto(p.elem); pp=p; if (ken < 0) p=(avlfapont<e>)p.bal; else if (ken > 0) p=(avlfapont<e>)p.jobb; else {// = if (!tobb) return false; else{ p =(AVLFaPont<E>)p.jobb;
19 ken = x.compareto(pp.elem); if (ken<0){ pp.bal = new AVLFaPont<E>(x,null,null); pp.bal.apa=pp; Helyreallit(pp, false, 1); else{ pp.jobb = new AVLFaPont<E>(x,null,null); pp.jobb.apa=pp; Helyreallit(pp, true, 1); return true; //Bovit
20 public boolean Torol(E x){ AVLFaPont<E> p =(AVLFaPont<E>) gyoker; AVLFaPont<E> q; AVLFaPont<E> pp; int ken; while (p!=null && (ken = x.compareto(p.elem))!=0){ if (ken<0) p=(avlfapont<e>)p.bal; else p=(avlfapont<e>)p.jobb; if (p==null) return false; if (p.bal!= null && p.jobb!= null){ q=(avlfapont<e>)p.jobb; while (q.bal!=null){ q=(avlfapont<e>)q.bal; p.elem=q.elem; //helyettesítés a követővel p=q;
21 if (p.bal==null) q=(avlfapont<e>)p.jobb; else q=(avlfapont<e>)p.bal; pp=(avlfapont<e>)p.apa; if (q!=null) q.apa=pp; if (p==gyoker){ gyoker=q; else{ if (p==pp.bal){ pp.bal=q; Helyreallit(pp, false, -1); else{ pp.jobb=q; Helyreallit(pp, true, -1); return true;
22 // Az új egyensúly értékek táblázatai egyszerű balra forgatáskor; // Egy(Q) függvényében: private final byte[] BUjP={1,0; private final byte[] BUjQ={-1,0; // Az új egyensúly értékek táblázatai egyszerű jobbra forgatáskor; // Egy(Q) függvényében: private final byte[] JUjP={0,-1; private final byte[] JUjQ={0,1; // Az új egyensúly értékek táblázatai egyszerű kettős balra forgatáskor; // Egy(R) függvényében: private final byte[] KUjP={0,0,-1; private final byte[] KUjQ={1,0,0; private void Helyreallit(AVLFaPont<E> p, boolean jobbra, int nott){ //jobbra=true/false: bővítés/törlés a p jobb-részfájában //nott=1: bővítés, nott=-1: törlés AVLFaPont<E> orszem=new AVLFaPont<E>(); orszem.bal=gyoker; gyoker.apa=orszem; int pegy; AVLFaPont<E> pp, q, r;
23 while (p!=orszem){ pegy=p.egy; if (jobbra) p.egy+=nott; else p.egy-=nott; if (p.egy==0 && nott>0 pegy==0 && nott<0) break; pp=(avlfapont<e>)p.apa; jobbra=p==pp.jobb; if (p.egy==2){ q=(avlfapont<e>)p.jobb; if (q.egy>=0){ //egyszeres balra forgatás p.egy=bujp[q.egy]; // P Q q.egy=bujq[q.egy]; // / \ / \ p.jobb=q.bal; // a Q => P c q.bal=p; // / \ / \ q.apa=p.apa; p.apa=q; // b c a b if (p.jobb!=null) p.jobb.apa=p; if (p==pp.bal) pp.bal=q; else pp.jobb=q; p=q; if (q.egy==0 && nott>0 q.egy==-1 && nott<0) break;
24 else{ //kétszeres balra forgatás r=(avlfapont<e>)q.bal; // P R p.egy=kujp[r.egy+1]; // / \ / \ q.egy=kujq[r.egy+1]; // a Q => P Q q.bal=r.jobb; // / \ / \ / \ p.jobb=r.bal; // R d a b c d r.bal=p; // / \ r.jobb=q; // b c r.apa=p.apa; p.apa=r; q.apa=r; if (p.jobb!=null) p.jobb.apa=p; if (q.bal!=null) q.bal.apa=q; r.egy=0; if (p==pp.bal) pp.bal=r; else pp.jobb=r; p=r; if (nott>0)break;
25 else if (p.egy==-2){ q=(avlfapont<e>)p.bal; if (q.egy<=0){ //egyszeres jobbra forgatás p.egy=jujp[q.egy+1]; // P Q q.egy=jujq[q.egy+1]; // / \ / \ p.bal=q.jobb; // Q c => a P q.jobb=p; // / \ / \ q.apa=p.apa; p.apa=q; // a b b c if (p.bal!=null) p.bal.apa=p; if (p==pp.bal) pp.bal=q; else pp.jobb=q; p=q; if (q.egy==0 && nott>0 q.egy==+1 && nott<0 ) break;
26 else{//q.egy==1 //kétszeres jobbra forgatás r=(avlfapont<e>)q.jobb;// P R p.egy=kujq[r.egy+1]; // / \ / \ q.egy=kujp[r.egy+1]; // Q d => Q P p.bal=r.jobb; // / \ / \ / \ q.jobb=r.bal; // a R a b c d r.bal=q; r.jobb=p; // / \ r.apa=p.apa; // b c q.apa=r; p.apa=r; if (q.jobb!=null) q.jobb.apa=q; if (p.bal!=null) p.bal.apa=p; r.egy=0; if (p==pp.bal) pp.bal=r; else pp.jobb=r; p=r; if (nott>0) break; p=pp; //while gyoker=orszem.bal;
27 if (gyoker!=null) gyoker.apa=null; orszem=null;
28 3.3. A Sorozat adattípus megvalósítása AVL-fával Értékhalmaz: Sorozat = { a 1,...,a n : a i E Műveletek: S : Sorozat, x : E, i : Integer {Igaz Letesit(S) {S = {S = S Megszuntet(S) {Hamis {S = S Uresit(S) {S = {S = a 1,...,a n Elemszam(S) {Elemszam = n {S = a 1,...,a i,a i+1,...,a n 0 i n Bovit(S,i,x) {S = a 1,...,a i,x,a i+1,...,a n {S = a 1,...,a i 1,a i,a i+1,...,a n 1 i n Torol(S,i) {S = a 1,...,a i 1,a i+1,...,a n {S = a 1,...,a i,...,a n 1 i n Kiolvas(S,i,x) {x = a i S = Pre(S) {S = a 1,...,a i,...,a n 1 i n Modosit(S,i,x) {S = a 1,...,x,...,a n
29 Adatszerkezet választás. 1. Tároljuk az S = { a 1,...,a n sorozatot egy F bináris fában úgy, hogy F inorder bejárása az S sorozatot adja. a5 a2 a8 a1 a4 a6 a9 a3 a7 7. ábra. Az S = a 1,a 2,...,a 9 sorozat tárolása bináris fában inorder sorrendben.
30 2. Az F fa minden p pontjában tároljuk kiegészítő információként p bal-részfájában lévő pontok száma +1 értéket; rpoz(p) = 1+ F Bal(p). Tehát rpoz(p) a p pontra végrehajtott inorder bejárás során p sorszáma. A sorozat i-edik elemét tartalmazó pont keresése: a5 5 a2 2 a8 3 a1 1 a4 2 a6 1 a9 1 a3 1 a ábra. Kiegészítő információ: rpoz(p) = 1 + F Bal(p). private SFaPontAVL<E> Keres(int i){ SFaPontAVL<E> p=gyoker; int poz=i; while (poz!=p.rpoz) if (poz<p.rpoz) p=p.bal; else{ poz=poz-p.rpoz; p=p.jobb; return p;
31 3. A kiegészítő információ fenntartása bővítés és törlés során. Bővítés esetén ha a keresőút balra halad egy p ponttól, akkor p rpoz értékéhez egyet kell adni. Törlés esetén, ha a keresőút balra halad egy p ponttól, akkor p rpoz értékéből egyet le kell vonni. Továbbá, ha AVL-fát használunk, akkor az AVL-egyensúlyt helyreállító forgatás után aktualizálni kell a kiegészítő információt. P a r1 BFORGAT(P) Q b r1 + r2 Q b r2 P a r1 α γ β γ α β 9. ábra. Az rpoz kiegészítő információ változása egyszeres balra forgatás során.
32 P b r1 JFORGAT(P) Q a r2 Q a r2 P b r1 r2 γ α α β β γ 10. ábra. Az rpoz kiegészítő információ változása egyszeres jobbra forgatás során. P a r1 R b r1 + r3 Q c r2 P a r1 Q c r2 r3 α R b r3 δ α β γ δ β γ 11. ábra. Az rpoz kiegészítő információ változása kettős balra forgatás során.
33 P c r1 R b r2 + r3 Q a r2 R r3 b δ Q a r2 P c r1 r2 r3 α α β γ δ β γ 12. ábra. Az rpoz kiegészítő információ változása kettős jobbra forgatás során. AVL-fában a kiegészítő információ fenntartható a keresőút minden pontonjában konstans számú művelettel megvalósítható. Tehát ha a sorozat adattípust AVL-fával valósítjuk meg, akkor a KIOLVAS, MODOSIT, BOVIT, TOROL műveletek futási ideje legrosszabb esetben is a fa magasságával arányos, tehát O(lgn).
34 import java.util.*; public class SorozatAVL<E> implements Sorozat<E>{ public static class SFaPontAVL<E> extends BinFaPont<E>{ byte egy; int rpoz; SFaPontAVL(E x, int bpontsz, SFaPontAVL<E> b, SFaPontAVL<E> j){ super(x,b,j); this.rpoz=bpontsz; int eszam; SFaPontAVL<E> gyoker; SorozatAVL(){ eszam=0; gyoker=null;
35 private SFaPontAVL<E> Keres(int i){ SFaPontAVL<E> p=gyoker; int poz=i; while (poz!=p.rpoz) if (poz<p.rpoz) p=(sfapontavl<e>)p.bal; else{ poz=poz-p.rpoz; p=(sfapontavl<e>)p.jobb; return p;
36 public void Bovit(int i, E x){ if (i<0 i>eszam) throw new NoSuchElementException(); SFaPontAVL<E> p=gyoker; SFaPontAVL<E> apa=gyoker; int poz=i; boolean balra=true; if (gyoker==null){ eszam=1; gyoker = new SFaPontAVL<E>(x, 1, null, null); return;
37 while (p!=null){ apa=p; if (poz<p.rpoz){ p.rpoz++; p=(sfapontavl<e>)p.bal; balra=true; else{ poz=poz-p.rpoz; p=(sfapontavl<e>)p.jobb; balra=false; SFaPontAVL<E> ujp=new SFaPontAVL<E>(x, 1, null, null); ujp.apa=apa; if (balra){ apa.bal = ujp; Helyreallit(apa, false, 1); else{ apa.jobb = ujp; Helyreallit(apa, true, 1); ++eszam;
38 public void Torol(int i){ if (i<1 i>eszam) throw new NoSuchElementException(); int poz=i; SFaPontAVL< E> p = gyoker; SFaPontAVL< E> q; while (poz!=p.rpoz){ if (poz<p.rpoz){ --p.rpoz; p=(sfapontavl<e>)p.bal; else{ poz=poz-p.rpoz; p=(sfapontavl<e>)p.jobb;
39 if (p.bal!= null && p.jobb!= null){ q=(sfapontavl<e>)p.jobb; while (q.bal!=null){ --q.rpoz; q=(sfapontavl<e>)q.bal; p.elem=q.elem; p=q; if (p.bal==null) q=(sfapontavl<e>)p.jobb; else q=(sfapontavl<e>)p.bal; if (q!=null) q.apa=p.apa; if (p==gyoker){ gyoker=q; else{ if (p==p.apa.bal) p.apa.bal=q; else p.apa.jobb=q; --eszam;
40 public E Kiolvas(int i){ if (i<1 i>eszam) throw new NoSuchElementException(); SFaPontAVL<E> p=keres(i); return p.elem; public void Modosit(int i, E x){ if (i<1 i>eszam) throw new NoSuchElementException(); SFaPontAVL<E> p=keres(i); p.elem=x;
41 private int Epit(SFaPontAVL<E> p, E a[], int bal, int jobb){ int balm=0; int jobbm=0; SFaPontAVL<E> balf, jobbf; int kozep=(bal+jobb) >>1; p.elem=a[kozep]; p.rpoz=kozep-bal+1; if (bal<kozep){ balf=new SFaPontAVL<E>(); balm=epit(balf, a, bal, kozep-1); p.bal=balf; balf.apa=p; if (kozep<jobb){ jobbf=new SFaPontAVL<E>(); jobbm=epit(jobbf, a, kozep+1, jobb); p.jobb=jobbf; jobbf.apa=p; p.egy=(byte)(jobbm-balm); return 1+(balm<jobbm? jobbm : balm);
42 SorozatAVL(E a[]){ if (a.length==0){ this.gyoker=null; this.eszam=0; return; this.gyoker=new SFaPontAVL<E>(); this.eszam=a.length; Epit(gyoker, a, 0, a.length-1); private void tombbe(e[] a, int bal,int jobb, SFaPontAVL<E> p){ int k=bal+p.rpoz-1; a[k]=p.elem; if (bal<k) tombbe(a, bal, k-1, (SFaPontAVL<E>)p.bal); if (k<jobb) tombbe(a, k+1, jobb, (SFaPontAVL<E>)p.jobb); public E[] Tombosit(){ int n=eszam; E[] a=(e[]) new Object[n]; tombbe(a, 0, n-1, gyoker); return a;
Algoritmusok és adatszerkezetek II.
Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 5. Vágható-egyesíthető Halmaz adattípus megvalósítása önszervező
Algoritmusok és adatszerkezetek II.
Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 6. Ugrólista (Skiplist) Definíció. Olyan adatszerkezet, amelyre
Számláló rendezés. Példa
Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a
Rendezettminta-fa [2] [2]
Rendezettminta-fa Minden p ponthoz tároljuk a p gyökerű fa belső pontjainak számát (méretét) Adott elem rangja: az elem sorszáma (sorrendben hányadik az adatszekezetben) Adott rangú elem keresése - T[r]
Példa 30 14, 22 55,
Piros-Fekete fák 0 Példa 14, 22 55, 77 0 14 55 22 77 Piros-Fekete fák A piros-fekete fa olyan bináris keresőfa, amelynek minden pontja egy extra bit információt tartalmaz, ez a pont színe, amelynek értékei:
Algoritmusok és adatszerkezetek gyakorlat 07
Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
7 7, ,22 13,22 13, ,28
Általános keresőfák 7 7,13 13 13 7 20 7 20,22 13,22 13,22 7 20 25 7 20 25,28 Általános keresőfa Az általános keresőfa olyan absztrakt adatszerkezet, amely fa és minden cellájában nem csak egy (adat), hanem
Önszervező bináris keresőfák
Önszervező bináris keresőfák Vágható-egyesíthető halmaz adattípus H={2,5,7,11,23,45,75} Vag(H,23) Egyesit(H1,H2) H1= {2,5,7,11} H2= {23,45,75} Vágás A keresési útvonal mentén feldaraboljuk a fát, majd
... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban
Bináris keresőfák. Adat : M Elemtip és Elemtip-on értelmezett egy lineáris rendezési reláció,
Bináris keresőfák Az F = (M,R,Adat) absztrakt adatszerkezetet bináris keresőfának nevezzük, ha F bináris fa, R = {bal, jobb, apa}, bal, jobb, apa : M M, Adat : M Elemtip és Elemtip-on értelmezett egy lineáris
10. Gráf absztrakt adattípus, gráfok ábrázolása
Gráf absztrakt adattípus, gráfok ábrázolása Definíciók Irányítatlan gráf:g = (V, E) E rendezetlen {a,b,a,b V párok halmaza Irányított gráf:g = (V,E) E rendezett (a,b) párok halmaza; E V V Multigráf: G
10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
A Verem absztrakt adattípus
A Verem absztrakt adattípus Értékhalmaz: E Verem = [a 1,...,a n : a i E,i = 1,...,n,] Műveletek: V : Verem, x : E {Igaz} Letesit(V) {V = []} {V = V } Megszuntet(V) {Igaz} {V = V } Uresit(V) {V = []} {V
Módosítható Prioritási sor Binomiális kupaccal. Wednesday, March 21, 12
Módosítható Prioritási sor Binomiális kupaccal modosit(x,k) {! if (k>x.kulcs) {!! x.kulcs=k ;!! y=x!! z=x.apa ;!! while(z!=nil and y.kulcs
Adatszerkezet - műveletek
Adatszerkezet - műveletek adatszerkezet létrehozása adat felvétele adat keresése adat módosítása adat törlése elemszám visszaadása minden adat törlése (üresít) adatszerkezet felszámolása (megszüntet) +
3. Absztrakt adattípusok
3. Absztrakt adattípusok Az adatkezelés szintjei: 1. Probléma szintje. 2. Modell szintje. 3. Absztrakt adattípus szintje. 4. Absztrakt adatszerkezet szintje. 5. Adatszerkezet szintje. 6. Gépi szint. Absztrakt
1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás
Preorder ejárás Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban lévő adatokra.
Tuesday, March 6, 12. Hasító táblázatok
Hasító táblázatok Halmaz adattípus U (kulcsuniverzum) K (aktuális kulcsok) Függvény adattípus U (univerzum) ÉT (értelmezési tartomány) ÉK (érték készlet) Milyen az univerzum? Közvetlen címzésű táblázatok
Elemi adatszerkezetek
2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Egyesíthető prioritási sor
Egyesíthető prioritási sor Értékhalmaz: EPriSor = S E, E-n értelmezett a lineáris rendezési reláció. Műveletek: S,S 1,S 2 : EPriSor, x : E {Igaz} Letesit(S, ) {S = /0} {S = S} Megszuntet(S) {} {S = S}
Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?
Ugrólisták Ugrólisták Ugrólisták Ugrólisták RSL Insert Example insert(22) with 3 flips 13 8 29 20 10 23 19 11 2 13 22 8 29 20 10 23 19 11 2 Runtime? Ugrólisták Empirical analysis http://www.inf.u-szeged.hu/~tnemeth/alga2/eloadasok/skiplists.pdf
Adatszerkezetek 7a. Dr. IványiPéter
Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a
List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error
Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,
Jobbra és balraforgatás
Def A P F pont (mgsság-)egyensúly: AVL f Egy(P) = h(jo(p)) h(bl(p)) Def Az F inf AVL-f, h ( P F)( Egy(P) ) tétel H F AVL-f, kkor h(f).44 lg(n + ), hol n z F f pontjink számát jelöli. Biz Legyen N m z m
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
Hierarchikus adatszerkezetek
5. előadás Hierarchikus adatszerkezetek A hierarchikus adatszerkezet olyan < A, R > rendezett pár, amelynél van egy kitüntetett r A gyökérelem úgy, hogy: 1. r nem lehet végpont, azaz a A esetén R(a,r)
2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1
2. Rekurzió Egy objektum definícióját rekurzívnak nevezünk, ha a definíció tartalmazza a definiálandó objektumot. Egy P eljárást (vagy függvényt) rekurzívnak nevezünk, ha P utasításrészében előfordul magának
- Levelek: operandusok - Csomópontok: operátorok. Fenti kifejezés: (x+ (y 10)) * (6 / z) Bináris Keresőfa (BST) Példa bináris keresőfára.
Fák Fa definíciója Fa(Tree): csomópontok(nodes) halmaza, amelyeket élek(edges) kötnek össze, és teljesülnek az alábbi feltételek: - létezik egy kitűntetett csomópont: a gyökér (root) - a gyökértől különböző
Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák
Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák Gelle Kitti 2017. 10. 25. Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák 2017. 10. 25. 1 / 20 Hasítótáblák T 0 h(k 2)
Fák 2009.04.06. Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Témakörök 2 Fa (Tree): csomópontok
Kupac adatszerkezet. 1. ábra.
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Egyesíthető prioritási sor
Egyesíthető prioritási sor Értékhalmaz: EPriSor = S E, E-n értelmezett a lineáris rendezési reláció. Műveletek: S,S 1,S 2 : EPriSor, x : E {Igaz} Letesit(S, ) {S = /0} {S = S} Megszuntet(S) {} {S = S}
Megoldás meghatározása Ez a szakasz kitölti a c és S táblázatokat, a kiíratás S alapján egy rekurzív algoritmussal megtehető.
Leghosszabb közös részsorozat Egy sorozat, akkor részsorozata egy másiknak, ha abból elemeinek elhagyásával megkapható. A feladat két sorozat X = (x 1,...,x m ) és Y = (y 1,...,y n ) leghosszabb közös
Generikus osztályok, gyűjtemények és algoritmusok
Programozási, gyűjtemények és algoritmusok bejárása Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 bejárása 2 bejárása 2 Java-ban és UML-ben bejárása Az UML-beli paraméteres osztályok a Java
Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.
Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
ÖNSZERVEZŐ BINÁRIS KERESŐFÁK HATÉKONYSÁGA
ÖNSZERVEZŐ BINÁRIS KERESŐFÁK HATÉKONYSÁGA Tétel: Ha a halmazok ábrázolására önszervező bináris keresőfát használunk, akkor minden α 1,...,α m műveletsor, ahol i {1..m}: α i {keres;bovit;torol;vag;egyesit}
Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
INFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
Az absztrakt adattípus egy (E,M) párral adható meg, ahol E az értékhalmaz, M a műveletek halmaza. Fő tulajdonságok. Verem
Előadás részvétel igazolása Az előadáson való részvételt az előadáson kapott kódnak az alábbi oldalra való feltöltésével lehet igazolni. http://www.inf.u-szeged.hu/~tnemeth/alg1ics/ Az adatkezelés szintjei
és az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
C# feladatok gyűjteménye
C# feladatok gyűjteménye Készítette: Fehérvári Károly I6YF6E Informatika tanár ma levelező tagozat 1) Feladat: ALAPMŰVELETEK Készítsünk programot, amely bekér két egész számot. Majd kiszámolja a két szám
1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje
1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt
Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.
Torna A pekingi olimpián tornából hat versenyszámban mérettetik meg magukat a versenyzők. Ennek a versenynek az eredményeit kell feldolgoznia ebben a feladatban. A megoldás során vegye figyelembe a következőket:
Keresőfák és nevezetes algoritmusaikat szemléltető program
EÖTVÖS LORÁND TUDOMÁNYEGYETEM INFORMATIKAI KAR Algoritmusok és Alkalmazásaik Tanszék Keresőfák és nevezetes algoritmusaikat szemléltető program Témavezető: Veszprémi Anna Mestertanár Szerző: Ujj László
A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány
Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
6. előadás. Kiegyensúlyozottság, AVL-fa, piros-fekete fa. Adatszerkezetek és algoritmusok előadás március 6.
6. előadás, AVL-fa, piros-fekete fa Adatszerkezetek és algoritmusok előadás 2018. március 6.,, és Debreceni Egyetem Informatikai Kar 6.1 Általános tudnivalók Ajánlott irodalom: Thomas H. Cormen, Charles
Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
Hátizsák feladat. Példa: A tárgyak (súly, fontosság) párokban (4,6) (3,5) (2,3) (2,3) a hátizsák kapacitása 8.
Hátizsák feladat Egy adott hátizsákba tárgyakat akarunk pakolni. Adott n tárgy minden tárgynak van egy fontossági értéke ( f [i]), és egy súlya (s[i]), a hátizsákba maximum összesen S súlyt pakolhatunk.
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
Hátizsák feladat. Példa: A tárgyak (súly, fontosság) párokban (4,6) (3,5) (2,3) (2,3) a hátizsák kapacitása 8.
Hátizsák feladat Egy adott hátizsákba tárgyakat akarunk pakolni. Adott n tárgy minden tárgynak van egy fontossági értéke ( f [i]), és egy súlya (s[i]), a hátizsákba maximum összesen S súlyt pakolhatunk.
A félév során előkerülő témakörök
A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
Algoritmusok és Adatszerkezetek II.
Algoritmusok és Adatszerkezetek II. előadás Felelős tanszék: Számítógépes algoritmusok és mesterséges intelligencia tanszék Nappali tagozaton: Előadás: heti 2 óra / 5 kredit. Teljesítés módja: Kollokvium.
A MAXIMUM-KUPACOL eljárás helyreállítja az A[i] elemre a kupactulajdonságot. Az elemet süllyeszti cserékkel mindaddig, amíg a tulajdonság sérül.
Kiválasztás kupaccal A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu
Programozás I. 3. előadás Tömbök a C#-ban Metódusok C#-ban Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia
Információs Technológia
Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió
Bináris keresőfa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor
Bináris keresőfa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Bináris keresőfa Rekurzív
7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet
7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát
OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
BME MOGI Gépészeti informatika 4.
BME MOGI Gépészeti informatika 4. 1. feladat önálló feladatmegoldás Generáljon két 1 és 10 közötti véletlen egész számot, majd kiírja ezekre a számokra a tízes szorzótáblákat! Ha az első generált szám
Programozási technológia
Programozási technológia Generikus osztályok Gyűjtemények Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Generikus osztályok Javaban az UML paraméteres osztályainak a generikus (sablon) osztályok felelnek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28.
10. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28. 2-3 fák Hatékony keresőfa-konstrukció. Ez is fa, de a binárisnál annyival bonyolultabb hogy egy nem-levél csúcsnak 2 vagy 3 fia
Adatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
2018, Diszkrét matematika
Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes
Fa (Tree): csomópontok (nodes) halmaza, amelyeket élek (edges) kötnek össze, és teljesülnek az alábbi feltételek:
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás Piros-fekete fa B-fa 2 Fa
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
file:///d:/okt/ad/jegyzet/ad1/b+fa.html
1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes
C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem
C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real
Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
Programozás I. Első ZH segédlet
Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett
OOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai
Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes
Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A
Rekurzió. Horváth Gyula. horvath@inf.elte.hu
1. ábra. Rekurzió Horváth Gyula horvath@inf.elte.hu 1. Feladat: Sorbaállítások száma Hány féleképpen lehet sorbaállítani az osztály tanulóit? Bemenet: a tanulók n száma. Kimenet: ahány félekeppen az n
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
Java II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
BME MOGI Gépészeti informatika 7.
BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:
Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
Programozás II. ATM példa Dr. Iványi Péter
Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert
Algoritmusok és adatszerkezetek II.
Szegedi Tudományegyetem - Természettudományi és Informatikai Kar - Informatikai Tanszékcsoport - Számítógépes Algoritmusok és Mesterséges Intelligencia Tanszék - Németh Tamás Algoritmusok és adatszerkezetek
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
JAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
Java Programozás 11. Ea: MVC modell
Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát
8. Mohó algoritmusok. 8.1. Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete
8. Mohó algoritmusok Optimalizálási probléma megoldására szolgáló algoritmus gyakran olyan lépések sorozatából áll, ahol minden lépésben adott halmazból választhatunk. Sok optimalizálási probléma esetén
Informatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
Collections. Összetett adatstruktúrák
Collections Összetett adatstruktúrák Collections framework Előregyártott interface-ek és osztályok a leggyakoribb összetett adatszerkezetek megvalósítására Legtöbbször módosítás nélkül használhatók Időt,
Alkalmazott modul: Programozás
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Feladatgyűjtemény Összeállította: Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Frissítve: 2015.
Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor
Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig
Neumann János Tehetséggondozó Program Gráfalgoritmusok II.
Neumann János Tehetséggondozó Program Gráfalgoritmusok II. Horváth Gyula horvath@inf.elte.hu 1. A szélességi bejárás alkalmazásai. Nyilvánvaló, hogy S(0) = {r}. Jelölés: D(p) = δ(r, p) Nyilvánvaló, hogy
Objektumorientált programozás C# nyelven III.
Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és
Magas szintű programozási nyelvek 2 Előadás jegyzet
Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás
Hierarchikus adatszerkezetek
Hierarchikus adatszerkezetek A szekveniális adatszerkezetek általánosítása. Minden adatelemnek pontosan 1 megelőzője van, de akárhány rákövetkezője lehet, kivéve egy speciális elemet. Fa (tree) Hierarchikus