티스토리 뷰
'어서와! 자료구조와 알고리즘은 처음이지?'
퇴근하고 공부하는게 쉽지 않은 거 같지만 그래도 강의 들으면서 하니까
책 보면서 하는 거 보다는 훨씬 나은 거 같다,, 👀
연결리스트(Linked List)
연결리스트에 각각 연결되어 있는 노드는 Data 와 Next 를 갖는다. Node 내의 데이터는 다른 구조로 이루어 질 수 있다. 예를 들어 문자열, 레코드, 또 다른 연결리스트가 가능하다.
# Node 클래스 정의
class Node:
def __init__(self, item):
self.data = item
self.next = None
self.node_count = 0
특정 원소 참조
class Node:
def __init__(self, item):
self.data = item
self.next = None
self.node_count = 0
# 특정 원소 참조
def get_at(self, pos):
if pos <= 0 or pos > self.node_count:
return None
i = 1
curr = self.head
while i < pos:
curr = curr.next
i += 1
return curr
배열과 비교한 연결 리스트
배열 | 연결리스트 | |
저장공간 | 연속한 위치 | 임의의 위치 |
특정원소지칭 | O(1) | O(n) |
원소의 삽입/삭제 시 연결리스트의 경우 링크를 끊어 원소를 삽입 하거나 삭제할 수 있어 빠른 시간 O(1)에 처리가 가능한 반면 선형 배열의 경우 삽입, 삭제 시 O(n) 만큼의 시간을 소요한다. 연결 리스트는 선형 배열에 비해서 데이터 구조 표현에 소요되는 저장공간(메모리) 소요가 크다. 링크 또한 메모리에 저장되어야 하므로, 동일한 데이터 원소들을 담기 위하여 사용하는 메모리 요구량이 크다.
[문 1. 연결 리스트 순회 ]
class Node:
def __init__(self, item):
self.data = item
self.next = None
class LinkedList:
def __init__(self):
self.nodeCount = 0
self.head = None
self.tail = None
def getAt(self, pos):
if pos < 1 or pos > self.nodeCount:
return None
i = 1
curr = self.head
while i < pos:
curr = curr.next
i += 1
return curr
def traverse(self):
answer = []
# 새로 노드 포인터 curr 지정해 줘야 에러가 안난다.
curr = self.head
while curr != None:
answer.append(curr.data)
curr = curr.next
return answer
# 이 solution 함수는 그대로 두어야 합니다.
def solution(x):
return 0
'Algorithm > 알고리즘' 카테고리의 다른 글
[프로그래머스 강의] 9강 연결리스트(Linked List) (3) (0) | 2022.04.30 |
---|---|
[프로그래머스 강의] 8강 연결리스트(Linked List) (2) (0) | 2022.04.28 |
[프로그래머스 강의] 4강 재귀함수 (0) | 2022.04.26 |
[프로그래머스 강의] 3강 정렬과 탐색 (0) | 2022.04.25 |
[프로그래머스 강의] 2강 선형 배열 (0) | 2022.04.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- CS 스터디
- Greedy sort
- 프로그래머스
- 프로그래머스강의
- It
- 프로세스 주소공간
- 리스트 복사
- 리스트함축
- CS
- https
- SW
- 이차 리스트
- 코드업 기초
- 자료구조
- 스터디
- 자바
- 데이터베이스
- CS.
- 연결리스트활용
- 네트워크
- 리스트
- 보험
- 리스트2
- 이진탐색
- 운영체제
- 자료구조와알고리즘 23강
- 알고리즘
- 파이썬
- 완전탐색
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함