Naloga/Programiranje/Objektno programiranje/Razred Seznam/Rešitev (Python)

Iz MaFiRaWiki

Ta članek ali del članka je v delu. Veseli bomo, če ga boste dopolnili in popravili.

Kaj pomeni to opozorilo?

  1.  
  2. #!/usr/bin/env /usr/local/bin/python
  3. # -*- coding: utf-8 -*-
  4. # Filename: seznam.py
  5.  
  6. ##################
  7. # Sestavi razred Seznam, ki predstavlja podatkovno strukturo seznam.
  8. # Razred naj vsebuje ustrezne konstruktorje in naslednje objektne metode:
  9. # toString
  10. # prazen, ki vrne true, če je seznam prazen
  11. # glava, ki vrne glavo seznama
  12. # rep, ki vrne rep seznama
  13. # dolzina, ki vrne dolžino seznama
  14. # stakni, ki sprejme seznam s in vrne nov seznam, ki je stik seznamov this in s
  15. # pritakni, ki sprejme seznam s in ga doda na konec seznama this
  16. # vstavi, ki sprejme element x in ga vstavi na začetek seznama this.
  17. # zbrisiGlavo, ki s seznama odstrani glavo.
  18. # element, ki sprejme nenegativno celo stevilo k in vrne k-ti element
  19. # seznama (začetni element ima indeks k = 0).
  20. ##################
  21.  
  22. class Seznam:
  23. def __init__(self, vse=[]):
  24. self.vsebina = vse
  25.  
  26. def prazen(self):
  27. return len(self.vsebina) == 0
  28.  
  29. def glava(self):
  30. return self.vsebina[0]
  31.  
  32. def rep(self):
  33. return self.vsebina[-1]
  34.  
  35. def dolzina(self):
  36. return len(self.vsebina)
  37.  
  38. def stakni(self, sez):
  39. s = Seznam()
  40. s.pritakni(self)
  41. s.pritakni(sez)
  42. return s
  43.  
  44. def pritakni(self,sez):
  45. self.vsebina = self.vsebina+sez.vsebina
  46.  
  47. def vstavi(self,x):
  48. self.vsebina[:0] = [x]
  49.  
  50. def zbrisiGlavo(self):
  51. self.vsebina = self.vsebina[1:]
  52.  
  53. def element(self,k):
  54. return self.vsebina[k]
  55.  
  56. def toString(self):
  57. return self.vsebina
  58.  
  59.  
  60.  
  61. ##################
  62. # Main
  63. ##################
  64.  
  65. if __name__ == '__main__':
  66.  
  67. a = Seznam(["foo","baz","fooo"])
  68. print a.toString()
  69.  
  70. b = Seznam(["foo","bar"])
  71. print b.toString()
  72.  
  73. c = a.stakni(b)
  74. print c.toString()
  75.  
  76. a.pritakni(b)
  77. print a.toString()
  78.  
  79. c.vstavi("bla")
  80. c.zbrisiGlavo()
  81. print c.toString()
  82.  
  83. print c.element(3)
Osebna orodja