Zuhaitzak

1,063 views

Published on

Programazioa II (2012): 6. gaia

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,063
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Zuhaitzak

  1. 1. BST zuhaitzak ´ Aitor Gomez-Goiri aitor.gomez@deusto.es Deustuko Unibertsitatea Ingeniaritza fakultatea http://www.deusto.es 2012/04/24
  2. 2. Aurkezpena 1 Zuhaitzak informatikan 2 BST zuhaitzen inplementazioa 3 Comparable 4 BST klaseko metodoak 5 Ibilbideak
  3. 3. Aurkezpena 1 Zuhaitzak informatikan 2 BST zuhaitzen inplementazioa 3 Comparable 4 BST klaseko metodoak 5 Ibilbideak
  4. 4. Zuhaitzak informatikan Egitura mota bat da. Izena, noski, naturako zuhaitzetatik hartzen du, amankomunean honako ezaugarriak baititu: Adarrak == nodo batetik hurrengorako loturak Erroa == lehenengo nodoa Hostoak == loturarik gabeko nodoak
  5. 5. BST zuhaitzak Binary Search Tree (BST). Klasean ikusiko dugun zuhaitz mota da. Ezaugarriak: Elementuak ordenean gordetzen ditu (txikienetik handienera) Nodo bakoitza bi nodoetara lotuta dago: Ezkerraldea: elementu txikiago bat duen nodo batekin. Eskuinaldea: elementu handiago bat duen nodo batekin.
  6. 6. Zertarako behar ditugu? Askotan elementuak gako baten arabera gorde/bilatu behar dira: NaN-a Eskaera baten erreferentzia zenbakia Produktu baten barra-kodea Laburbilduz, honetarako behar ditugu zuhaitzak: Datuak gordetzeko beste egitura bat da (zerrendak bezala) Berezitasuna: datuak irizpide baten arabera ordenatzen dira Irizpide horren arabera berreskuratzerakoan, zerrenda bat baino arinago bueltatzen ditu
  7. 7. Aurkezpena 1 Zuhaitzak informatikan 2 BST zuhaitzen inplementazioa 3 Comparable 4 BST klaseko metodoak 5 Ibilbideak
  8. 8. BST inplementazioa Nodo bakoitzak honako elementuak ditu: Beste elementuekin alderatu ahal dugun elementua Ezkerraldeko nodoa: elementu txikiagoa duena Eskuinaldeko nodoa: elementu handiagoa duena public class NodoA{ private Comparable elementua; private NodoA ezkerraldekoa; private NodoA eskuinaldekoa; ... }
  9. 9. BST adibidea Adibidez, Integer motako elementuak gordetzen baditugu...
  10. 10. Aurkezpena 1 Zuhaitzak informatikan 2 BST zuhaitzen inplementazioa 3 Comparable 4 BST klaseko metodoak 5 Ibilbideak
  11. 11. Zer da Comparable? Nola alderatu ditzakegu elementuak? Comparable interfazea erabiliz. Zer da interfaze bat? Atributurik gabeko eta metodo abstraktuak baino ez dituen klase bat bezalakoa da
  12. 12. Zertan datza Comparable interfazea? Zer egin behar dugu klase bat Comparable bihurtzeko? Metodo bat gainidatzi. int compareTo(Object o) Zer egiten du? this<o bada 0 baino txikiagoa den zenbakia bueltatu this==o bada 0 bueltatu this>o bada 0 baino handiagoa den zenbakia bueltatu
  13. 13. Javako Comparableak Integer, Double, String eta hainbat klase betetzen dute Comparable interfazea. Horrexegatik era horretako objektuak sartu ahal izango ditugu gure BSTan Zenbakiekin errez ulertu ahal da: (new Integer(1)).compareTo( new Integer(2) ) // < 0 (new Integer(1)).compareTo( new Integer(1) ) // == 0 (new Integer(4)).compareTo( new Integer(3) ) // > 0 String klaseak alfabetikoki ordenatzen ditu hitzak "bizkaia".compareTo("bizkaia") // == 0 "araba".compareTo("bizkaia") // < 0 "gipuzkoa".compareTo("bizkaia") // >0
  14. 14. Comparable klase bat programatzeko Eta gure klaseak Comparable bihurtzeko? Adibidez, ikasleak NaN-aren arabera ordenatzen badira... public class Ikaslea implements Comparable { private int nan; private String izena; ... public int compareTo(Object o) { Ikaslea ik = (Ikaslea) o; if( this.nan==ik.nan ) return 0; if( this.nan<ik.nan ) return -1; // if( this.nan>ik.nan ) return 1; } }
  15. 15. Aurkezpena 1 Zuhaitzak informatikan 2 BST zuhaitzen inplementazioa 3 Comparable 4 BST klaseko metodoak 5 Ibilbideak
  16. 16. BST klaseko metodoak public Comparable bilatu(Comparable bilatuNahiDenElem); public boolean sartu(Comparable sartuNahiDenElem); public Comparable ezabatu(Comparable obj);
  17. 17. Aurkezpena 1 Zuhaitzak informatikan 2 BST zuhaitzen inplementazioa 3 Comparable 4 BST klaseko metodoak 5 Ibilbideak
  18. 18. Ibilbideak Zuhaitzeko elementuekin zeozer egiteko, nodoz nodo ibili behar dugu. Elementu bat gakoa ez den irizpide baten arabera bilatzerakoan. Elementu guztiekin zeozer egiterakoan (adibidez, atributu bat aldatzeko). Hori egiteko era desberdinak daude: Pre-order In-order Post-order
  19. 19. Lizentzia Irudien guztien jabetza intelektuala bere egileena* da, gainontzeko edukiak Creative Commons by-sa 3.0 lizentziapean daude. * Ian Britton.

×