반응형
<학습일기>
Ch 07. 자료구조 - 링크드 리스트-3
4. 링크드 리스트의 복잡한 기능1(링크드 리스트 데이터 사이에 데이터를 추가)
- 링크드 리스트는 유지 관리에 부가적인 구현이 필요함
6. 링크드 리스트의 복잡한 기능2(특정 노드를 삭제)
- 경우의 수를 나누어 주어야한다.
- 첫번째 노드를 삭제할 때는 다음 노드를 헤드로 설정을 해주어야함.
- 마지막 노드를 삭제할 때는 그 전 노드의 주소를 null로 바꿔주어야함.
- 중간 노드를 삭제할 때는 전 노드의 주소를 중간 다음 노드의 주소로 바꾸어 주어야함.
def delete(self, data):
if self.head=='':
print("해당값을 가진 노드가 없습니다")
return
# 1 head 삭제
if self.head.data ==data:
temp=self.head
self.head = self.head.next
del temp
# 2, 3 마지막 노드를 삭제, 중간 노드를 삭제
else:
node = self.head
while node.next:
if node.next.data == data:
temp= node.next
node.next = node.next.next
del temp
else:
node= node.next # 찾는 노드가 아니라면 다음으로 넘어감.
7. 다양한 링크드 리스트 구조
- 더블 링크드 리스트(Doubly linked list)
- 이중 연결 리스트라고도 함
- 장점: 양방향으로 연결되어 있어서 노드 탐색이 양쪽으로 모두 가능
- ex) head --- [이전 데이터 주소, 데이터, 다음 데이터 주소]
<수강인증>
*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
#알고리즘기술면접완전정복올인원패키지Online
반응형
'패스트캠퍼스 챌린지' 카테고리의 다른 글
패스트캠퍼스 챌린지 9일차 (0) | 2022.02.01 |
---|---|
패스트캠퍼스 챌린지 8일차 (0) | 2022.01.31 |
패스트캠퍼스 챌린지 6일차 (0) | 2022.01.29 |
패스트캠퍼스 챌린지 5일차 (0) | 2022.01.28 |
패스트캠퍼스 챌린지 4일차 (0) | 2022.01.27 |