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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | # 객체지향 프로그래밍으로 링크드 리스트 구현 # set up class Node: def __init__(self, data, next=None): self.data = data self.next = next class NodeList: 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 node.next = Node(data) def showAll(self): node = self.head while node: print(node.data) node = node.next def delete(self, data): if self.head == '': print("현재 노드가 없습니다") return if self.head.data == data: temp = self.head self.head = temp.next del temp else: node = self.head while node.next: if node.next.data == data: temp = node.next node.next = node.next.next del temp return else: node = node.next def search_node(self, data): node = self.head while node: if node.data == data: return node else: node = node.next # 실행 linkedlist = NodeList(0) print(linkedlist.head) # <__main__.Node object at 0x..> linkedlist.delete(0) # head 제거 linkedlist.head # 비어있음 linkedlist = NodeList(1) for i in range(2, 4): linkedlist.add(i) linkedlist.showAll() # 1, 2, 3 linkedlist.delete(2) # 2 삭제 linkedlist.showAll() # 1, 3 node_found = linkedlist.search_node(3) print(node_found.data) # 3 | cs |
'> 자료구조 구현 > 링크드 리스트' 카테고리의 다른 글
이중 연결 리스트 구현 (0) | 2020.09.16 |
---|---|
노드(데이터) 사이에 노드(데이터) 추가하기 (0) | 2020.09.15 |
간단한 링크드 리스트 구현 (0) | 2020.09.15 |
댓글