티스토리 뷰
간단하게 구현한 단방향 연결 리스트이다.
이렇게 아예 구현해놓고 문제를 푸는 게 삽입, 삭제, 조회 등을 추가하여 사용하기가 훨씬 편리할 거 같아서 작성했다.
class ListNode:
def __init__(self, data):
self.val = data
self.next = None
class LinkedList:
def __init__(self):
head_node = ListNode(None)
self.head = head_node
self.tail = head_node
self.num_of_data = 0
def insert(self, data):
insert_node = ListNode(data)
self.tail.next = insert_node
self.tail = insert_node
self.num_of_data += 1
def delete(self):
if self.num_of_data == 0:
print("empty")
return False
elif self.num_of_data == 1:
delete_node = self.head.next
self.head.next = None
self.tail = self.head
self.num_of_data -= 1
print(delete_node.val, "데이터를 삭제하였습니다.")
return delete_node.val
else:
delete_node = self.head.next
self.head.next = self.head.next.next
self.num_of_data -= 1
print(delete_node.val, "데이터를 삭제하였습니다.")
return delete_node.val
def search(self, data):
check = self.head
for i in range(self.num_of_data):
if check.next.val == data:
print(data, "데이터의 위치: ", i + 1)
return None
check = check.next
print(data, "데이터는 리스트에 없습니다.")
return None
def listNum(self):
print(self.num_of_data)
return self.num_of_data
def printList(self):
current = self.head
if self.num_of_data == 0:
print("empty")
return None
print(end='')
for i in range(self.num_of_data - 1):
print(current.next.val, "->", end='')
current = current.next
print(current.next.val)
반응형
'[Python] > 선형 자료구조' 카테고리의 다른 글
[Python] 연결 리스트 <두 정렬 리스트 병합> (0) | 2021.05.13 |
---|---|
[Python] 연결리스트 <Runner 기법> (0) | 2021.05.11 |
[Python] List <자신을 제외한 배열의 곱> (0) | 2021.05.10 |
[Python] List <세 수의 합> (0) | 2021.05.07 |
[Python] List <빗물 트래핑> (0) | 2021.05.06 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- 인천 구월동 이탈리안 맛집
- 인천 구월동 맛집
- await
- Promise
- Async
- 맛집
- react-native
- 이탈리안 레스토랑
- react
- AsyncStorage
- redux-thunk
- 파니노구스토
- javascript
- redux
- 정보보안기사 #실기 #정리
- Total
- Today
- Yesterday