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ő
RészletesebbenAlgoritmusok é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
RészletesebbenSzá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
RészletesebbenRendezettminta-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]
RészletesebbenPé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:
RészletesebbenAlgoritmusok é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
RészletesebbenKupac 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.
Részletesebben7 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
RészletesebbenÖ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
Részletesebben... 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
RészletesebbenBiná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
Részletesebben10. 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
Részletesebben10. 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ő.
RészletesebbenA 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
RészletesebbenMó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
RészletesebbenAdatszerkezet - 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) +
Részletesebben3. 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
Részletesebben1. á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.
RészletesebbenTuesday, 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
RészletesebbenElemi 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
RészletesebbenEgyesí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}
RészletesebbenAlgoritmizá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
RészletesebbenAmortizá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
RészletesebbenUgró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
RészletesebbenAdatszerkezetek 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
RészletesebbenList<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,
RészletesebbenJobbra é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
RészletesebbenAdatszerkezetek 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
RészletesebbenHierarchikus 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)
Részletesebben2. 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
Részletesebben- 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ő
RészletesebbenGelle 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)
RészletesebbenFá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
RészletesebbenKupac 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.
RészletesebbenEgyesí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}
RészletesebbenMegoldá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
RészletesebbenGenerikus 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
RészletesebbenAlgoritmuselmé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
RészletesebbenHelyes-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
RészletesebbenÖ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}
RészletesebbenJava 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
RészletesebbenINFORMATIKAI 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
RészletesebbenAz 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
Részletesebbené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
RészletesebbenJava 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
RészletesebbenC# 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
Részletesebben1. 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
RészletesebbenTorna. 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:
RészletesebbenKereső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ó
RészletesebbenA 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
RészletesebbenJava 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
Részletesebben6. 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
RészletesebbenProgramozá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
RészletesebbenHá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.
RészletesebbenProgramozá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
RészletesebbenHá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.
RészletesebbenA 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
RészletesebbenB-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
RészletesebbenSzé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:
RészletesebbenAlgoritmusok é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.
RészletesebbenA 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.
RészletesebbenProgramozá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
RészletesebbenInformá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ó
RészletesebbenBiná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
Részletesebben7. 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
RészletesebbenOOP: 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
RészletesebbenBME 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
RészletesebbenProgramozá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
RészletesebbenOBJEKTUM 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ő
Részletesebben10. 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
RészletesebbenAdatszerkezetek é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ú
Részletesebben2018, 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
RészletesebbenFa (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
RészletesebbenAdatszerkezetek 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
Részletesebbenfile:///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
RészletesebbenC# 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
RészletesebbenObjektum 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.
RészletesebbenProgramozá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
RészletesebbenOOP: 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
Részletesebben3. 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
RészletesebbenAdatszerkezetek 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
RészletesebbenRekurzió. 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
RészletesebbenProgramozá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
RészletesebbenJava 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
RészletesebbenBME 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:
RészletesebbenFü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
RészletesebbenProgramozá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
RészletesebbenAlgoritmusok é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
RészletesebbenProgramozá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
RészletesebbenJAVA 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
RészletesebbenJava 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
Részletesebben8. 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
RészletesebbenInformatika 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
RészletesebbenCollections. Ö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,
RészletesebbenAlkalmazott 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.
RészletesebbenJava 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
RészletesebbenNeumann 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
RészletesebbenObjektumorientá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
RészletesebbenMagas 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
RészletesebbenHierarchikus 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
Részletesebben