gringotopies

Lista

Jan 9th, 2018
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.68 KB | None | 0 0
  1. class Wezel:
  2.  
  3.     def __init__(self, dane1,dane2):
  4.         self.dane1=dane1
  5.         self.dane2=dane2
  6.         self.next=None
  7.         self.prev=None
  8.  
  9.     def __str__(self):
  10.         return (str(self.dane1)+" "+str(self.dane2))
  11.  
  12. class Lista:
  13.     def __init__(self):
  14.         self.head=None
  15.         self.tail=None
  16.  
  17.     def push(self, dane1,dane2):
  18.         if not self.head:
  19.             n=Wezel(dane1,dane2)
  20.             self.head=n
  21.             self.tail=n
  22.         else:
  23.             n=self.tail
  24.             nast=Wezel(dane1,dane2)
  25.             nast.prev=n
  26.             n.next=nast
  27.             self.tail=nast
  28.  
  29.     def pop(self):
  30.         n=self.tail
  31.         print(n)
  32.  
  33.         if (self.head == n and self.tail == n):
  34.             self.head = None
  35.             self.tail = None
  36.         else:
  37.             n.prev.next = None
  38.             self.tail=n.prev
  39.  
  40.     def usunpoz(self,numer):
  41.         licznik=1
  42.         n=self.head
  43.         while(licznik<numer):
  44.             if(n.next==None):
  45.                 print("Podano zły index")
  46.                 return
  47.             n=n.next
  48.             licznik=licznik+1
  49.         if(self.head==n and self.tail==n):
  50.             self.head=None
  51.             self.tail=None
  52.         elif (self.head == n):
  53.             self.head = n.next
  54.  
  55.         elif (self.tail == n):
  56.             self.tail = n.prev
  57.         else:
  58.             nastepny=n.next
  59.             poprzedni=n.prev
  60.             nastepny.prev=poprzedni
  61.             poprzedni.next=nastepny
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. tablica=Lista()
  69. tablica.push("a",1)
  70. tablica.push("b",2)
  71. tablica.push("c",3)
  72. tablica.pop()
  73. tablica.usunpoz(2)
  74. tablica.push("d",4)
  75. tablica.pop()
  76. tablica.pop()
  77. tablica.push("e",1)
  78. tablica.pop()
Add Comment
Please, Sign In to add comment