Algorithm linked list reverse order

알고리듬 linked list reverse order를 알아보겠습니다.


링크드 리스트는 다음 구조체의 주소를 가지고 있는 구조체의 집합입니다.

그림으로 보면 아래와 같습니다.







이 linked list를 역순으로 어떻게 만드는지 알아보겠습니다.


노드는 이렇게 정의되어 있습니다.





reverse_order라는 함수를 만듭니다.

이전 값을 연결해야 하므로 previous_node를 만들고, None을 넣습니다. 왜냐하면, 역순으로 보면 head가 마지막이기 때문입니다.






current_node가 None이 아닐 때까지 반복합니다.

37 번째 줄에서 next_node에는 current_node의 next를 넣습니다.

38 번째 줄에서 기존의 current_node의 next의 연결을 끊고 previous_node로 연결합니다.

39 번째 줄에서 current_node를 previous_node로 만듭니다.

40 번째 줄에서 current_node를 next_node로 만들어주어 반복합니다.

끝나면 42 번째 줄에서 마지막 값이 저장된 previous_node를 반환합니다.






숨겨진 코드 때문에 아래 코드는 여러분 컴퓨터에서는 작동하지 않을 겁니다. 그냥 결과만 보여드릴게요.







끝.



카테고리: Algorithm

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Forensics .pyc 파일 .py로 복구하기

Android AVD Ram size change

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)