class Node: def __init__(self, data): self.data = data self.next = None class Node: def __init__(self, data, next=None): self.data = data self.next = next // Node와 Node 연결하기 (포인터 활용) node1 = Node(1) node2 = Node(2) node1.next = node2 head = node1 // 링크드 리스트로 데이터 추가하기 class Node: def __init__(self, data, next=None): self.data = data self.next = next def add(data): node = head while node.next: node = node.next node.next = Node(data) node1 = Node(1) head = node1 for index in range(2, 10): add(index) // 링크드 리스트 데이터 출력하기(검색하기) node = head while node.next: print(node.data) node = node.next print (node.data) // 1 2 3 4 5 6 7 8 9 // 객체지향 프로그래밍으로 구현 class Node: def __init__(self, data, next=None): self.data = data self.next = next 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 node.next = Node(data) def desc(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 = self.head.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 linkedlist1 = NodeMgmt(0) linkedlist1.desc() for data in range(1, 10): linkedlist1.add(data) linkedlist1.desc() // 0 1 2 3 4 5 6 7 8 9 linkedlist1.delete(4) linkedlist1.desc() // 0 1 2 3 5 6 7 8 9 linkedlist1.delete(9) linkedlist1.desc() // 0 1 2 3 5 6 7 8 | cs |
::public/Python