그래서 여기에 몇 가지 코드가 있는데 무슨 일이 일어나고 있는지에 대한 기본적인 논리를 가지고 있습니다.하지만 정확히 한 행씩 무엇을하는지 이해하고 싶습니다. 파이썬 튜터와 비슷한 자바 스크립트 코드를 찾을 수 없으므로 도와주세요. LinkedLists의 작동 방식과이 코드가 단계별로 수행중인 작업을 이해하고 싶습니다. 실제 사례에서 이것을 언제 사용합니까? 이 배열의 차이점은 무엇입니까?자바 스크립트 배열을 배우기
-1
A
답변
1
기본 사항 :
연결리스트 노드 만들어진 데이터 구조입니다. 각 노드는 유용한 데이터와 다음 노드에 대한 참조를 유지합니다. 목록에 대한 참조를 유지하려면 첫 번째 노드에 대한 참조 만 유지하면됩니다. 목록은 다른 노드 대신 null에 대한 참조가있는 노드로 끝납니다.
JS 코드 (주석)
// node structure:
//{ data: value, // useful data
// next: nextNode } // reference to next node. null for last node
var LinkedList = function() { // constructor function
this.head = null; // reference to the first node
};
LinkedList.prototype.insert = function(value) { // function you use to insert a new node
if(this.head === null) { // code for when the list has no nodes.
this.head = {data: value, next: null}; // simply init the reference to the first node to a node
} else { // if there are nodes, you need to go through the list to get the to the last node
var temp = this.head; // start from the first node
while(temp.next !== null) { // until you find the node that has no next
temp = temp.next; // go from one node to the next
}
temp.next = {data: value, next: null}; // the last node should point to a new node you create (which points to nothing, so it becomes the last node)
} };
나은 해결책 :
리스트 구조뿐만 아니라 마지막 노드를 가리키는 포인터를 유지. 삽입은 O (1)이됩니다. 삭제는 여전히 O (n)이므로 마지막 노드가 삭제되면 포인터를 업데이트해야합니다.
편집 : 대답 새로운 질문
는 일반적으로 배열 더 나은이지만, 연결리스트가 바람직하다 경우가있다합니다. 한 가지 분명한 예는 조각난 메모리가 많은 환경입니다. 배열은 인접한 할당 된 메모리가 필요합니다. 따라서 메모리가 조각화되면 할당 할 수있는 최대 배열은 매우 작습니다. 링크 된 목록은 노드가 하나 더있는 공간이 있으면 언제나 더 많은 메모리를 확보 할 수 있습니다. 연결 목록이 JS (어쩌면 인터뷰 질문)에서 유용했는지는 알지 못했지만, 그것이 가능하다는 것을 아는 것은 흥미 롭습니다.
0
1
당신은보다 구체적인 질문은 가능성이 더 나은 대답 할 것이다 단계
관련 문제
- 1. 자바 스크립트 - 난독 화 - baddies에서 배우기
- 2. 나는이 배열을 자바 스크립트
- 3. JSP 배열을 자바 스크립트
- 4. 자바 스크립트 - 배열을 정렬
- 5. 자바 스크립트 배열을 비교
- 6. 자바 스크립트 배열을 직렬화하십시오.
- 7. 자바 배우기 시작
- 8. 자바 스크립트 : 새로운 배열을 동적으로
- 9. 복잡한 배열을 사용하는 자바 스크립트
- 10. 자바 스크립트 배열을 구문 분석합니다
- 11. PHP는 자바 스크립트 배열을 읽습니다.
- 12. json에서 자바 스크립트 배열을 작성해야합니다.
- 13. 배열을 자바 스크립트 함수로 전달
- 14. 자바 스크립트 배열을 서블릿에 전달
- 15. 자바 스크립트 배열을 긁는 것
- 16. 배열을 더하는 자바 스크립트 (수학)
- 17. PHP 배열을 자바 스크립트 배열
- 18. 자바 스크립트 : 배열을 통해 반복
- 19. 자바 스크립트 요소 배열을 삭제
- 20. jquery에 자바 스크립트 배열을 전달합니다.
- 21. 자바 스크립트 객체의 배열을 복사
- 22. 배열을 인쇄하지 않는 자바 스크립트
- 23. 자바 스크립트 배열을 다차원 배열
- 24. 배열을 포함하는 자바 스크립트 배열
- 25. 자바 스크립트 배열을 가져 배열
- 26. 자바 스크립트 배열을 통한 순환
- 27. 파일에 자바 스크립트 배열을 작성하십시오
- 28. 자바 스크립트 변수에서 배열을 만듭니다
- 29. 자바 스크립트 배열을 추가하거나 업데이트
- 30. 자바 스크립트 배열을 다르게 행동
에 의해 불을 지르고 또는 크롬 dev에 도구 같은 설정 중단 점 및 코드 단계에서 진행을 사용할 수 있습니다. –
정확히 무엇을 요구하고 있습니까? 연결된 목록이 어떻게 작동하는지 묻고 있습니까? 나는 연결된 목록이 기능적으로 언어간에 변하지 않는다는 것을 의미하는 데이터 구조라고 말한다. –
우선 무엇보다 ... 일반 배열 대신 연결된 목록이 필요한 이유는 무엇입니까? –