728x90
class Node:
def __init__(self, data):
self.data = data
self.next = None
class SinglySortedLinkedList:
def __init__(self):
self.head = None
self.count = 0
def append(self, node):
if self.count == 0:
self.head = node
self.count = 1
else:
cur_node = self.head
prev_node = None
# cur_node의 data와 node의 data를 비교하며 삽입 위치 파악
while cur_node != None and cur_node.data <= node.data:
prev_node = cur_node
cur_node = cur_node.next
# node의 next를 cur_node로 설정
node.next = cur_node
# node의 data가 가장 작아 head에 삽입해야 하는 경우 node를 head로 설정
if prev_node == None:
self.head = node
# node를 리스트 중간에 삽입해야 하는 경우 prev_node의 next를 node로 설정
else:
prev_node.next = node
self.count += 1
def print_all(self):
if self.count == 0:
print('')
else:
tmp_node = self.head
while (tmp_node != None):
print(tmp_node.data, end=" ")
tmp_node = tmp_node.next
if __name__ == '__main__':
singly_sorted_linked_list = SinglySortedLinkedList()
for n in [4, 5, 2, 7, 99, -1, 0, 19]:
node = Node(n)
singly_sorted_linked_list.append(node)
singly_sorted_linked_list.print_all()
728x90
'프로그래밍' 카테고리의 다른 글
[소프트웨어공학] 소프트웨어 공학이란? (0) | 2020.06.06 |
---|---|
[소프트웨어공학] 소프트웨어와 프로그램의 차이 (0) | 2020.06.06 |
[자료구조] Python 파이썬으로 이중연결 정렬 리스트 구현하기 코드 설명 (0) | 2020.06.02 |
[React.js] create-react-app에서 img 태그에 이미지 소스 넣기 (0) | 2020.06.01 |
[React.js] react-pdf 로 파일 프리뷰 미리보기 하는 법 react-pdf 사용법 예제 (10) | 2020.06.01 |