디스코드 Doubly LinkedList 구현 코드 관련 질문
def insert(self, idx, value):
new_node = Node(value)
if idx == 0:
new_node.next = self.head
self.head = new_node
else:
current = self.head
for _ in range(idx-1):
current = current.next
new_node.next = current.next
current.next = new_node
def remove(self, idx):
if idx == 0:
self.head = self.head.next # garbage collector가 알아서 처리해준다.
else:
current = self.head
for _ in range(idx-1):
current = current.next
current.next = current.next.nextdef insert의 if문에서 self.head.prev=new_node 이렇게 연결지어주지 않아도 괜찮나요?
def insert의 else문에서
new_node.prev=current
current.next.prev=new_node
이 부분을 추가 안해도 괜찮나요?
def remove의 if문에서 garbage collector가 알아서 처리해주신다고 했는데 1->2->3 이렇게 연결되어있고
인덱스 0인 1을 삭제한다고 했을 때 위의 코드대로 하면 head는 2를 가리킨 상태여도 1이랑 2는 아직 연결되어있는데 알아서 삭제가 되나요? 그래서 self.head.prev=None 이 코드를 추가해야된다고 생각했는데 맞을까요?
def remove의 else문에서 마찬가지로 current.next.prev=current 문을 추가하지 않아도 괜찮나요?
답변 1
0
안녕하세요 만족한 피라미님
def insert의 if문에서 self.head.prev=new_node 이렇게 연결지어주지 않아도 괜찮나요?
단방향 연결리스트에는 필요없고, 양방향 연결리스트라면 필요합니다.
def insert의 else문에서
new_node.prev=current
current.next.prev=new_node
이 부분을 추가 안해도 괜찮나요?
단방향 연결리스트에는 필요없고, 양방향 연결리스트라면 필요합니다.
def remove의 if문에서 garbage collector가 알아서 처리해주신다고 했는데 1->2->3 이렇게 연결되어있고
인덱스 0인 1을 삭제한다고 했을 때 위의 코드대로 하면 head는 2를 가리킨 상태여도 1이랑 2는 아직 연결되어있는데 알아서 삭제가 되나요? 그래서 self.head.prev=None 이 코드를 추가해야된다고 생각했는데 맞을까요?
단방향 연결리스트라서 prev참조가 없어서 해당코드는 필요 없습니다.
또한, 삭제된 노드는 더 이상 다른 노드로부터 참조되지 않게 되서, 그 노드에 대한 참조가 없는 이상 가비지 컬렉션의 대상이 되어 None으로 할 필요없이 알아서 메모리에서 삭제가 됩니다.
def remove의 else문에서 마찬가지로 current.next.prev=current 문을 추가하지 않아도 괜찮나요?
단방향 연결리스트에는 필요없고, 양방향 연결리스트라면 필요합니다.
질문에대한 답이 되었을까요~?
추가적으로 질문 있으시면 편하게 남겨주세요 :)
노션 공유 링크
0
87
2
수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?
0
78
2
최신 강의와 비교
0
85
2
Min Cost Climbing stairs 질문
0
77
2
노션 공유 부탁드립니다!
1
88
2
for 문에 sort 함수 를 사용하면
1
90
2
노션 공유 부탁드립니다.
0
105
2
디스코드가 올바르지 않다고 뜹니다..!
0
107
1
그래프
0
98
2
노션 공유
1
123
2
시간복잡도 질문
2
125
3
11강 질문
1
78
2
노션 공유 부탁드립니다
0
84
2
linkedList - BrowserHistory 코드 질문
0
76
1
list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?
1
168
1
라이브러리 사용
1
137
2
문제 교재는 따로 없는 거 맞나요?
1
202
2
LCA 관련해서 질문이 있습니다.
1
118
2
[Unique Paths] 완전탐색 / DP (후반부)
0
108
1
dp 계단오르기최소비용질문입니다.
0
109
1
Dynamic Array 의 size 정보가 저장되는 곳
2
161
2
노션공유가 안된듯 합니다
1
165
2
[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)
1
122
1
강의자료 만들 때 사용하신 프로그램이 뭘까요?
1
204
1





