fahadkalil

lde_2020-1

May 5th, 2020
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.04 KB | None | 0 0
  1. # definindo o nodo duplo
  2. class Dnodo:
  3.     def __init__(self, dado=None):
  4.         self.dado = dado
  5.         self.proximo = None
  6.         self.anterior = None
  7.  
  8.     def __str__(self):
  9.         return str(self.dado)
  10.  
  11. # definindo a lista duplamente encadeada
  12. class LDE:
  13.     def __init__(self):
  14.         self.header = Dnodo()
  15.         self.trailer = Dnodo()
  16.         self.tam = 0
  17.  
  18.     def is_empty(self):
  19.         if (self.header.proximo is None or self.trailer.anterior is None):
  20.             return True
  21.         return False
  22.  
  23.     def inserir_inicio(self, novo):
  24.         if self.is_empty():
  25.             self.header.proximo = novo    # H -> novo
  26.             novo.anterior = self.header   # H <- novo
  27.             novo.proximo = self.trailer   # novo -> T
  28.             self.trailer.anterior = novo  # novo <- T
  29.         else:
  30.             primeiro = self.header.proximo
  31.             novo.proximo = primeiro
  32.             primeiro.anterior = novo
  33.             self.header.proximo = novo
  34.             novo.anterior = self.header
  35.  
  36.     def inserir_fim(self, novo):
  37.         if self.is_empty():
  38.             self.header.proximo = novo    # H -> novo
  39.             novo.anterior = self.header   # H <- novo
  40.             novo.proximo = self.trailer   # novo -> T
  41.             self.trailer.anterior = novo  # novo <- T
  42.         else:
  43.             pass # COMPLETE O CODIGO
  44.  
  45.     def remover_fim(self):
  46.         if self.is_empty():
  47.             print("LISTA VAZIA!")
  48.         else:
  49.             pass
  50.  
  51.     def remover_inicio(self):
  52.         if self.is_empty():
  53.             print("LISTA VAZIA!")
  54.         else:
  55.             pass
  56.  
  57.     def imprimir(self):
  58.         if self.is_empty():
  59.             print("LISTA VAZIA!")
  60.         else:
  61.             item = self.header.proximo
  62.             while item.proximo is not None:
  63.                 print(item)
  64.                 item = item.proximo
  65.  
  66. ## TESTES ##
  67. lista = LDE()
  68. nodo1 = Dnodo("abc")
  69. nodo2 = Dnodo("def")
  70. nodo3 = Dnodo("zyx")
  71. lista.inserir_inicio(nodo1)
  72. lista.inserir_inicio(nodo2)
  73. #lista.inserir_fim(nodo3)
  74. lista.imprimir()
Add Comment
Please, Sign In to add comment