기술 면접 준비: 단일 링크 목록 메모지(JavaScript) 첫 번째 섹션
3494 단어 javalinkedlistjavascript
얘네 뭐야?
밧줄 위의 진주를 생각해봐.모든 진주는 강자를 통해 다음 진주와 연결된다.밧줄은 시작점, 끝점, 진주 총수 또는 길이가 있다.
이제 실제 데이터 구조의 그림을 살펴보겠습니다.
컴퓨터 대화에서 모든 진주는 현재 노드라고 불린다.노드에 데이터가 포함되어 있습니다.이러한 데이터는 숫자, 문자열, 심지어'전쟁과 평화'의 사본일 수 있다각 노드는 다음 노드를 가리킨다.이것은 모든 노드가 그 노드를 따르는 것을 의미한다(위 그림의 화살표와 같다).
체인 테이블의 첫 번째 노드를 머리라고 부른다.마지막 노드를 꼬리라고 합니다.끝부분은 체인 테이블의 마지막 노드입니다. 어떤 내용도 가리키지 않거나 컴퓨터 대화에서null값을 가리키지 않습니다.
우리가 진일보한 토론을 하기 전에, 너는 아마도 "이 체인 시계는 보기에 매우 정규 수조와 같다."라고 생각할 것이다.그래, 네가 옳다!
수조와 단사슬표의 장점과 단점을 살펴보자.
배열에 색인이 있습니다.단일 체인 시계는 할 줄 모른다.
만약 당신이 그룹에서 어떤 것을 찾고 싶다면, 당신이 필요로 하는 것은 색인일 뿐, 당신은 곧 그것을 찾을 것이다.체인 테이블에 색인이 없기 때문에 요소에 접근하는 유일한 방법은 체인 테이블의 시작부터 찾을 내용을 찾을 때까지 순환하는 것이다.
이것은 체인 테이블이 비연속적인 메모리 위치에 저장될 수 있다는 것을 의미한다.네가 사슬시계로 나쁜 메모리에 얼마나 많은 물건을 넣을 수 있는지 생각해 봐라!
상금 차이는 면접관에게 깊은 인상을 남길 수 있다
JS 개발자로서 이 점을 모를 수도 있지만, 그룹을 설명할 때, 실제로는 특정한 수량의 메모리를 분배합니다.예를 들어, Java를 사용하는 경우 myArrr라는 변수의 배열에 10개의 요소 길이가 있음을 선언해야 합니다.그룹 크기도 JS에 할당되지만 표시되지 않거나 처리해야 함*
한 마디로 하면 수조에 대해 컴파일할 때 메모리를 성명하면 메모리를 분배한다.이를 정적 메모리 할당이라고 합니다.
다른 한편, 체인 테이블에 대해서는 새 노드가 추가됨에 따라 실행할 때 메모리를 분배한다.이를 동적 메모리 할당이라고 합니다.따라서 이것은 정적ol수조보다 더 유연한 메모리 분배 안배입니다!
됐어, 그만해.코드를 작성하기 시작합시다.당신의 면접관은 당신에게 단일 체인 시계를 실현하라고 요구할 가능성이 높습니다!
이 모든 데이터 구조는 클래스를 사용하기 때문에 기본적인 대상 프로그래밍 기술을 습득했는지 확인하십시오.
우리의 체인 시계를 쓰기 위해서 우리는 실제로 두 종류가 필요하다.첫 번째 클래스는 노드를 만들 것입니다. (우리의 링크 목록은 다음 노드를 가리키는 노드로 구성됩니다.)
각 노드에는 값 (val) 과 다음 노드 또는 포인터 두 개의 속성이 있습니다.우리 바늘을'다음'이라고 부르는 게 어때요?코드는 다음과 같습니다.
class Node {
constructor(val) {
this.val = val
this.next = next
}
}
다음으로 두 번째 클래스를 구성해야 합니다. "Singly Linked List"라고 명명합니다.우리는 Single Linked List 클래스의 모든 실례가 길이와 머리, 꼬리가 있기를 바란다.우리는 길이가 0인 모든 실례부터 시작할 것이다.머리와 꼬리를 "null"로 설정합니다.깨끗한 시작만큼 좋은 것은 없다!
코드입니다.SinglyLinkedList 클래스는 이전 "Node"클래스 아래에 있습니다.
class Node {
constructor(val) {
this.val = val
this.next = next
}
}
class SinglyLinkedList {
constructor() {
this.length = 0
this.head = null
this.tail = null
}
}
지금까지 당신의 면접에서 당신은 이곳을 가진 것처럼 그 검은색 표지에서 일할 것입니다!가봐!!!계속해서 더 많은 면접 준비를 지켜봐 주십시오.
*JavaScript 개발자로서 제가 가장 잘한 일 중 하나는 몇 개의 Java 과정을 배웠다는 것입니다.이것은 마치 자동 교환(JavaScript)에서 수동 교환(Java)으로 전환하는 것과 같다.조용한 거리를 찾아봐!
Reference
이 문제에 관하여(기술 면접 준비: 단일 링크 목록 메모지(JavaScript) 첫 번째 섹션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kuddleman/technical-interview-prep-singly-linked-list-cheat-sheet-in-javascript-1jj6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)