자료구조
자료구조 - 양방향 연결리스트 (DoublyLinkedList) python code
by ddahu
2023. 2. 13.
class Node:
def __init__(self,data):
self.data = data
self.next = None
self.prev = None
class DoublyLinkedList:
def __init__(self):
self.head = Node(None)
self.tail = Node(None)
def addData(self,data,beforData):
if self.head == None:
self.head = Node(data,None,None)
self.tail = self.head
elif beforData == None:
self.tail.next = Node(data,None,self.tail)
self.tial = self.tail.next
else:
cur = self.head
prev = cur
while cur != None:
if cur.data == beforData:
if cur == self.head:
self.head = Node(data, self.head, None)
self.head.next.prev = self.head
else:
prev.next = Node(data,cur,prev)
cur.prev = prev.next
break
prev = cur
cur = cur.next
def removeData(self,data):
cur = self.head
prev = cur
while cur != None:
if cur.data == data:
if cur == self.head and cur == self.tail:
self.head,self.tail = None,None
elif cur == self.head:
self.head,self.head.prev = cur.next, None
elif cur == self.tail:
self.tail, self.tail.next = self.tail.prev , None
else:
prev.next = cur.next
cur.next.prev = prev
break
prev = cur
cur = cur.next