카테고리 없음
링크드 리스트(Linked list) - 자료구조, 파이썬(python)
에르미타쥬
2019. 2. 1. 14:46
node와 node사이의 연결을 이용해 데이터를 엮어내는 자료구조입니다. node를 정의하고 node.next를 정의해 다음에 올 node를 node.next에 담아 엮는 것입니다.
저는 오름차순으로 숫자를 추가하는 add 메서드, 링크드 리스트에 있는 노드를 조회하는 desc메서드, 원하는 노드를 삭제하는 delete 메서드를 구현 했습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | class Node: def __init__(self, data): self.data = data self.next = None class NodeMgmt: def __init__(self, data): self.head = Node(data) def add(self,data): if self.head == '': self.head = Node(data) else: node = self.head while node.next: node = node.next if node.data < data: node.next = Node(data) else: node = self.head while node.next.data < data: node = node.next temp = node.next new = Node(data) new.next = temp node.next = new del temp def desc(self): node = self.head while node: print(node.data) node = node.next def delete(self, data): if self.head == '': print('해당 값을 가진 노드가 없습니다') return False if self.head.data == data: self.head = self.head.next else: node = self.head while node.next: if node.next.data == data: node.next = node.next.next else: node = node.next | cs |