-
링크드 리스트(Linked list) - 자료구조, 파이썬(python)카테고리 없음 2019. 2. 1. 14:46
node와 node사이의 연결을 이용해 데이터를 엮어내는 자료구조입니다. node를 정의하고 node.next를 정의해 다음에 올 node를 node.next에 담아 엮는 것입니다.
저는 오름차순으로 숫자를 추가하는 add 메서드, 링크드 리스트에 있는 노드를 조회하는 desc메서드, 원하는 노드를 삭제하는 delete 메서드를 구현 했습니다.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051class Node:def __init__(self, data):self.data = dataself.next = Noneclass NodeMgmt:def __init__(self, data):self.head = Node(data)def add(self,data):if self.head == '':self.head = Node(data)else:node = self.headwhile node.next:node = node.nextif node.data < data:node.next = Node(data)else:node = self.headwhile node.next.data < data:node = node.nexttemp = node.nextnew = Node(data)new.next = tempnode.next = newdel tempdef desc(self):node = self.headwhile node:print(node.data)node = node.nextdef delete(self, data):if self.head == '':print('해당 값을 가진 노드가 없습니다')return Falseif self.head.data == data:self.head = self.head.nextelse:node = self.headwhile node.next:if node.next.data == data:node.next = node.next.nextelse:node = node.nextcs