Egitura linealak            ´     Aitor Gomez-Goiri  aitor.gomez@deusto.es     Deustuko Unibertsitatea      Ingeniaritza f...
Aurkezpena  1   Zer eta zertarako?  2   Zerrenda estatikoak  3   Zerrenda dinamikoa  4   Ilarak  5   Pilak
Aurkezpena  1   Zer eta zertarako?  2   Zerrenda estatikoak  3   Zerrenda dinamikoa  4   Ilarak  5   Pilak
Zer dira zerrendak?                      Honako ezaugarriak dituen dituzten                      datu egitura linealak dir...
Zertarako behar ditugu?  Supermerkatuan erosi beharrekoak gogoratzeko, klasera  nortzuk etortzen zareten jakiteko eta kont...
Ondo, baina... informatikan?  Adibidez...
Aurkezpena  1   Zer eta zertarako?  2   Zerrenda estatikoak  3   Zerrenda dinamikoa  4   Ilarak  5   Pilak
Zerrenda estatikoa (I)      Arrayak edo bektoreak      Alde          Sarbide zuzena elementu batera ailegatzeko bere posiz...
Zerrenda estatikoa (II)      Lotura inplizitoko zerrendak          1. elementua 1. posizioan, 2. elementua 2.posizioan, et...
Nolakoa da zerrenda estatikoa?     Vector klasea ikusi.
Zerrenda estatikoa: add     zerrendaEstatikoa.add(“Bego”);     zerrendaEstatikoa.add(2, “Bego”);
Zerrenda estatikoa: set eta get      zerrendaEstatikoa.get(3); => “Bego”      zerrendaEstatikoa.set(2, “Bego”);
Zerrenda estatikoa: remove eta clear      zerrendaEstatikoa.remove();      zerrendaEstatikoa.remove(2);      zerrendaEstat...
Aurkezpena  1   Zer eta zertarako?  2   Zerrenda estatikoak  3   Zerrenda dinamikoa  4   Ilarak  5   Pilak
Zerrenda dinamikoa     Loturadun zerrenda edo zerrenda kateatua.     Zerrendaren posizio bakoitzak ”Nodo” izeneko objektua...
Nolakoa da zerrenda dinamikoa?     LinkedList klasea ikusi.
Zerrenda dinamikoa: add(objektua) I     zerrendaDinamikoa.add(“Mikel”);                                       1   Nodo ber...
Zerrenda dinamikoa: add(objektua) II     zerrendaDinamikoa.add(“Mikel”);                                       1   Nodo be...
Zerrenda dinamikoa: add(objektua) III      zerrendaDinamikoa.add(“Mikel”);                                        1   Nodo...
Zerrenda dinamikoa: add(pos, objektua) I     zerrendaDinamikoa.add(1, “Bego”);                                         1  ...
Zerrenda dinamikoa: add(pos, objektua) II     zerrendaDinamikoa.add(2, “Bego”);                                         1 ...
Zerrenda dinamikoa: add(pos, objektua) III      zerrendaDinamikoa.add(2, “Bego”);                                         ...
Zerrenda dinamikoa: add(pos, objektua) IV     zerrendaDinamikoa.add(2, “Bego”);                                         1 ...
Zerrenda dinamikoa: get I     zerrendaDinamikoa.get(2);                                 1   2 posizioan                   ...
Zerrenda dinamikoa: get II                                     ˜      zerrendaDinamikoa.get(2); => “Inaki”                ...
Zerrenda dinamikoa: set I     zerrendaDinamikoa.set(1, “Irati”);                                          1   2 posizioan ...
Zerrenda dinamikoa: set II      zerrendaDinamikoa.set(1, “Irati”);                                           1   2 posizio...
Zerrenda dinamikoa: remove I     zerrendaDinamikoa.remove();                                   1   Azkenaurreko           ...
Zerrenda dinamikoa: remove II     zerrendaDinamikoa.remove();                                   1   Azkenaurreko          ...
Zerrenda dinamikoa: remove(pos) I     zerrendaDinamikoa.remove(1);                                    1   Kendu nahi den  ...
Zerrenda dinamikoa: remove(pos) II     zerrendaDinamikoa.remove(1);                                     1   Kendu nahi den...
Zerrenda dinamikoa: iterator     zerrendaDinamikoa.initializeIterator();         Ibilbidea hasieratzen du aldagai bat lehe...
Aurkezpena  1   Zer eta zertarako?  2   Zerrenda estatikoak  3   Zerrenda dinamikoa  4   Ilarak  5   Pilak
Zer dira ilarak?      FIFO (First Input First Output) motako egitura          Elementu berriak bukaeratik sartzen dira    ...
Zertarako behar ditugu ilarak?    Ilarak bizitzako leku askotan ikusi    ditzakegu:        Gasolindegian        Ileapainde...
Ilara dinamikoak     Bi atributu ditu          Lehenengo nodoa          Azkenengo nodoa
Ilarak: metodoak     add(objektua)         edo put(objektua)     remove()     peek()     poll()         edo get()         ...
Aurkezpena  1   Zer eta zertarako?  2   Zerrenda estatikoak  3   Zerrenda dinamikoa  4   Ilarak  5   Pilak
Zer dira pilak?    LIFO (Last Input First Output) motako egitura        Eragiketak mutur jakin batean (goian) dagoen      ...
Zertarako behar ditugu pilak?    Liburu pila, plater pila, karta pila,    etab.    Informatikan?         Espresio ebaluazi...
Pila dinamikoak     Atributu bakarra edukiko du: lehenengo nodoa
Pilak: metodoak     push(objektua)         edo add(objektua) edo pilatu(objektua)     pop()     peek()         ez du nodoa...
Lizentzia      Irudien guztien jabetza intelektuala bere egileena* da,        gainontzeko edukiak Creative Commons by-sa 3...
Upcoming SlideShare
Loading in …5
×

Egitura linealak

590 views

Published on

Programazioa II (2012): 4. 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
590
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Egitura linealak

  1. 1. Egitura linealak ´ Aitor Gomez-Goiri aitor.gomez@deusto.es Deustuko Unibertsitatea Ingeniaritza fakultatea http://www.deusto.es 2012/03/06
  2. 2. Aurkezpena 1 Zer eta zertarako? 2 Zerrenda estatikoak 3 Zerrenda dinamikoa 4 Ilarak 5 Pilak
  3. 3. Aurkezpena 1 Zer eta zertarako? 2 Zerrenda estatikoak 3 Zerrenda dinamikoa 4 Ilarak 5 Pilak
  4. 4. Zer dira zerrendak? Honako ezaugarriak dituen dituzten datu egitura linealak dira: Mota jakin bateko edozein datu kopurua gorde ditzakete Datuen ordena garrantzia du Ez da gauza bera (3,2,1) eta (1,2,3) Elementuak errepikatu ahal dira (3,4,3,2,1,4)
  5. 5. Zertarako behar ditugu? Supermerkatuan erosi beharrekoak gogoratzeko, klasera nortzuk etortzen zareten jakiteko eta kontutan hartzeko edo, noski, ”olentzerori” opariak eskatzeko...
  6. 6. Ondo, baina... informatikan? Adibidez...
  7. 7. Aurkezpena 1 Zer eta zertarako? 2 Zerrenda estatikoak 3 Zerrenda dinamikoa 4 Ilarak 5 Pilak
  8. 8. Zerrenda estatikoa (I) Arrayak edo bektoreak Alde Sarbide zuzena elementu batera ailegatzeko bere posizioa jakinda Kontra Askoz jota izango duen tamaina ezagutu behar dugu aldez aurretik (konpilatzerako orduan) Elementu berriak sartzerakoan edo zerrendako elementuak kentzerakoan gainontzekoak desplazatu beharko dira (exekuzio denbora gora egiten du) Alferrik galdutako memoria zerrenda txikietan
  9. 9. Zerrenda estatikoa (II) Lotura inplizitoko zerrendak 1. elementua 1. posizioan, 2. elementua 2.posizioan, etab. Memorian elementuak bata bestearen atzean daude (jarraian) Horrela gordetzen delako bektore bat memorian
  10. 10. Nolakoa da zerrenda estatikoa? Vector klasea ikusi.
  11. 11. Zerrenda estatikoa: add zerrendaEstatikoa.add(“Bego”); zerrendaEstatikoa.add(2, “Bego”);
  12. 12. Zerrenda estatikoa: set eta get zerrendaEstatikoa.get(3); => “Bego” zerrendaEstatikoa.set(2, “Bego”);
  13. 13. Zerrenda estatikoa: remove eta clear zerrendaEstatikoa.remove(); zerrendaEstatikoa.remove(2); zerrendaEstatikoa.clear();
  14. 14. Aurkezpena 1 Zer eta zertarako? 2 Zerrenda estatikoak 3 Zerrenda dinamikoa 4 Ilarak 5 Pilak
  15. 15. Zerrenda dinamikoa Loturadun zerrenda edo zerrenda kateatua. Zerrendaren posizio bakoitzak ”Nodo” izeneko objektua du. Nodo bakoitzak honako osagaiak ditu: Gorde nahi den elementua. Zerrendaren hurrengo nodoarekin lotura. azkenengoa null bat du.
  16. 16. Nolakoa da zerrenda dinamikoa? LinkedList klasea ikusi.
  17. 17. Zerrenda dinamikoa: add(objektua) I zerrendaDinamikoa.add(“Mikel”); 1 Nodo berria sortu
  18. 18. Zerrenda dinamikoa: add(objektua) II zerrendaDinamikoa.add(“Mikel”); 1 Nodo berria sortu 2 Azkenengo nodoa lortu
  19. 19. Zerrenda dinamikoa: add(objektua) III zerrendaDinamikoa.add(“Mikel”); 1 Nodo berria sortu 2 Azkenengo nodoa lortu 3 Azkenengo nodoa berriarekin lotu
  20. 20. Zerrenda dinamikoa: add(pos, objektua) I zerrendaDinamikoa.add(1, “Bego”); 1 Nodo berria sortu
  21. 21. Zerrenda dinamikoa: add(pos, objektua) II zerrendaDinamikoa.add(2, “Bego”); 1 Nodo berria sortu 2 Sartu nahi posizioko nodoaren aurrean dagoen nodoa lortu
  22. 22. Zerrenda dinamikoa: add(pos, objektua) III zerrendaDinamikoa.add(2, “Bego”); 1 Nodo berria sortu 2 Sartu nahi posizioko nodoaren aurrean dagoen nodoa lortu 3 Nodo berria aurrekoaren hurrengoarekin lotu
  23. 23. Zerrenda dinamikoa: add(pos, objektua) IV zerrendaDinamikoa.add(2, “Bego”); 1 Nodo berria sortu 2 Sartu nahi posizioko nodoaren aurrean dagoen nodoa lortu 3 Nodo berria aurrekoaren hurrengoarekin lotu 4 Aurreko nodoa berriarekin lotu
  24. 24. Zerrenda dinamikoa: get I zerrendaDinamikoa.get(2); 1 2 posizioan dagoen nodorarte joan
  25. 25. Zerrenda dinamikoa: get II ˜ zerrendaDinamikoa.get(2); => “Inaki” 1 2 posizioan dagoen nodorarte joan 2 Bere elementua bueltatu
  26. 26. Zerrenda dinamikoa: set I zerrendaDinamikoa.set(1, “Irati”); 1 2 posizioan dagoen nodorarte joan
  27. 27. Zerrenda dinamikoa: set II zerrendaDinamikoa.set(1, “Irati”); 1 2 posizioan dagoen nodorarte joan 2 Bere elementua gainidatzi
  28. 28. Zerrenda dinamikoa: remove I zerrendaDinamikoa.remove(); 1 Azkenaurreko posizioan dagoen nodorarte joan
  29. 29. Zerrenda dinamikoa: remove II zerrendaDinamikoa.remove(); 1 Azkenaurreko posizioan dagoen nodorarte joan 2 Bere hurrengoa null batekin gainidatzi
  30. 30. Zerrenda dinamikoa: remove(pos) I zerrendaDinamikoa.remove(1); 1 Kendu nahi den nodoaren aurrean dagoen nodorarte joan
  31. 31. Zerrenda dinamikoa: remove(pos) II zerrendaDinamikoa.remove(1); 1 Kendu nahi den nodoaren aurrean dagoen nodorarte joan 2 Bere hurrengoa hurrengoaren nodoaren hurrengora gainidatzi
  32. 32. Zerrenda dinamikoa: iterator zerrendaDinamikoa.initializeIterator(); Ibilbidea hasieratzen du aldagai bat lehenengo nodoarekin lotuz zerrendaEstatikoa.getElement() 1 Elementua bueltatu 2 Hurrengo nodora apuntatu zerrendaEstatikoa.hasNext(); Ibilbidea jarraitu ahal da?
  33. 33. Aurkezpena 1 Zer eta zertarako? 2 Zerrenda estatikoak 3 Zerrenda dinamikoa 4 Ilarak 5 Pilak
  34. 34. Zer dira ilarak? FIFO (First Input First Output) motako egitura Elementu berriak bukaeratik sartzen dira Ilarako elementuak hasieratik ateratzen dira Ikusi javako Queue klasea
  35. 35. Zertarako behar ditugu ilarak? Ilarak bizitzako leku askotan ikusi ditzakegu: Gasolindegian Ileapaindegian Supermerkatuan etab. Informatikan? Serbitzarietan bezeroei erantzuteko Prozezuen arteko koordinazioan etab.
  36. 36. Ilara dinamikoak Bi atributu ditu Lehenengo nodoa Azkenengo nodoa
  37. 37. Ilarak: metodoak add(objektua) edo put(objektua) remove() peek() poll() edo get() peek() + remove()
  38. 38. Aurkezpena 1 Zer eta zertarako? 2 Zerrenda estatikoak 3 Zerrenda dinamikoa 4 Ilarak 5 Pilak
  39. 39. Zer dira pilak? LIFO (Last Input First Output) motako egitura Eragiketak mutur jakin batean (goian) dagoen elementuarekin egiten dira Bakarrik goian dagoen elementua berreskuratu dezakegu! Ikusi javako Stack klasea
  40. 40. Zertarako behar ditugu pilak? Liburu pila, plater pila, karta pila, etab. Informatikan? Espresio ebaluazioa eta parseo sintaktikoa Memoria kudeaketa
  41. 41. Pila dinamikoak Atributu bakarra edukiko du: lehenengo nodoa
  42. 42. Pilak: metodoak push(objektua) edo add(objektua) edo pilatu(objektua) pop() peek() ez du nodoa ezabatzen
  43. 43. Lizentzia Irudien guztien jabetza intelektuala bere egileena* da, gainontzeko edukiak Creative Commons by-sa 3.0 lizentziapean daude. * darrentunnicliff, plindberg, venusdale, thowi, chatraye eta yyycatch.

×