자바스크립트 코드 질문

자바스크립트 코드 질문

작성일 2023.09.18댓글 2건
    게시물 수정 , 삭제는 로그인 필요



-알라딘 eBook <자료구조와 알고리즘 with 자바스크립트> (온개발팀) 중에서

1. 빨간 네모 속 코드 자체가 아예 이해가 되지 않아요.. ㅠ 왜 current = current.next 했는데, 그 다음에 다시 current.next = node를 해주는 건가요?? ㅠㅠ



#자바스크립트 코드 #자바스크립트 코드 실행 #자바스크립트 코드 모음 #자바스크립트 코드 정리 #자바스크립트 코드 정렬 #자바스크립트 코드 정렬 단축키 #자바스크립트 코드 테스트 #자바스크립트 코드 분석 #자바스크립트 코드 난독화 #자바스크립트 코드 컨벤션

profile_image 익명 작성일 -

링크드리스트는 자료구조의 기본적 내용인데, 연속된 메모리에 존재하는 배열과는 다르게 하나의 노드(블록)가 다음 노드의 위치를 가리키는 방식으로 만들어져 있습니다.

자바스크립트는 포인터라는 개념이 없지만 class를 new로 초기화하면 해당 인스턴스는 힙이라는 영역에 있게 되고 인스턴스는 실제로 값이 아니라 주소를 가리키게 됩니다. 실제로 포인터의 역할을 하는거죠.

다시 처음으로 돌아가서 링크드리스트는 각 노드가 다음 노드의 주소를 가리키는 자료 구조이고 위의 코드는 next만 있는 단방향 링크드리스트네요.

단방향은 head가 있으면 head의 next를 따라 계속 가다보면 맨 끝에 next가 null인 노드를 찾게 되고 그걸 링크드리스트의 마지막이라고 인식하게 됩니다.

해당 코드는 addLast, 즉 노드의 마지막에 주어진 노드를 삽입하는 함수를 구현하는 것이니 while문으로 current.next가 null이 아닐때까지 current를 갱신했고 해당 루프는 current.next, 즉 마지막 노드에 도달 했을 때 빠져나오겠죠?

currnet.next = node;

위의 코드로 인해서 마지막 노드의 next에 파라미터로 전달된 node를 넣으면 맨 마지막이 node가 되는겁니다(해당 node.next는 반드시 null이어야 합니다)

참고로 리스트의 노드 수가 많을 때 매번 addLast를 호출하면 노드의 수만큼 노드를 traverse하기 때문에 느려집니다. 그래서 단점을 보안하기 위해 마지막 노드를 하나 더 가지고 있다면? 단번에 addLast를 수행할 수 있겠죠? 이 경우에는 next이외에도 prev(previous) 노드도 추적해야 하기 때문에 링크를 두 개 가진다는 의미로 더블 링크드 리스트라고 합니다.

(아마 책에도 나올테고 이건 예습이라고 보심됩니다 ㅋ)

그럼

profile_image 익명 작성일 -

연결 리스트를 순회하다 마지막에 node를 하나 더 붙이는 건데

while(current.next)라는 건 current에 할당된 노드에 next가 존재할 때 반복문을 수행하겠단 얘기잖아요.

그리고 while문 안에서 current에 current.next를 할당하면

가령 current가 리스트의 3번째 node일 때, current.next는 4번째 node겠죠?

이제 current = current.next를 실행하면 current == 4번째 node인 겁니다.

그럼 이제 current.next는 뭘까요? 당연히 5번 node겠죠.

그런데 만약 5번 node가 없다면 current.next는 null이 되는 겁니다.

그러면 반복문을 탈출하게 되는 것인데, 이 코드의 목표는 리스트의 마지막 node 뒤에 새로운 node를 붙이는 거니까, null이었던 current.next에 새 node를 할당하는 겁니다.

그러면 이제 4번 node의 next는 null에서 5번 node(빨간 블록 위에서 const node로 생성했던 것)이 되는 거죠.

자바스크립트 코드 질문.

자바스크립트를 공부하고 있는 코린이인데요. 위의... 위의 코드를 보면요. 각 if 문을 다 확인 해봐야 하는... 이건 질문의 범위에서 넘어가는 것 같으니 다음에 .. 훗...

html 자바스크립트 코드 질문

댓글1 text에 내용을 입력하고 등록을 누르면 의 자식으로 에 내용을 추가하고 싶은데 자바스크립트 코드를 짜서 textarea 내용 쓰고 등록눌러도...

자바스크립트 코드 질문

-알라딘 eBook <자료구조와 알고리즘 with 자바스크립트> (온개발팀) 중에서 1. 빨간 네모 속 코드 자체가 아예 이해가 되지 않아요.. ㅠ 왜 current = current.next 했는데...

[+100] 자바스크립트 코드 질문

... 알파벳과숫자가 혼합된 8자리 코드의 유효여부를 검사하는 자바스크립트의 내용이 아래와 같습니다. 이걸 역추적(?)...

자바스크립트 코드 질문

... text("test"); } [/code] 자바스크립트 코드 [code] [/code] html 코드 이렇게... 너무 오래전 질문이라 해결되셨을것 같습니다. 나중에 자바나...