이 기사는 JavaScript를 사용하여 데이터 구조 학습에서 연결 목록을 구현하는 방법에 대한 관련 지식을 제공합니다. ㅋㅋㅋ C 언어와 같이 동적으로 추가됨)
헤드 노드가 필요함
1 at the tail node 노드 추가
//在尾节点处添加节点 function append(element){ let node = new node(element); let current; if(head == null){ current = node }else{ while(current.next){ current = current.next; } current.next = node } length++; }
코드 분석:
들어오는 요소를 기반으로 노드 정의, 이 노드의 값으로 사용됨
Define 현재 노드를 나타내는 변수헤드 노드가 있는지 확인합니다. 헤드 노드가 없으면 연결된 목록에 값이 없음을 나타내고, 그렇지 않으면 전달된 값이 헤드 노드로 사용됩니다. 연결된 목록을 탐색하고 마지막 노드를 찾은 후 다음 속성이 새 노드에 할당됩니다.연결된 목록의 길이 + 1
function insert(position,element){ let node = new Node(element); let current = head; let previous;//当前节点的前一个节点,在position处添加节点,就是在previos和current之间添加 if(position = 0){ node.next = head; head = node; }else{ for(let i = 0;i< position;i++){ pervious = current; current = current.next; } pervious.next = node; node.next = current; } length++; return true; }
현재 노드를 나타내는 변수를 정의하고 이를 헤드 노드로 초기화합니다. 즉, 변수는 현재 노드의 이전 노드를 나타냅니다. 노드의 기능은 찾기를 용이하게 하는 것입니다. 노드
를 삽입할 때 이전 노드를 헤드 노드 앞에 추가할지 여부를 결정합니다. 그렇다면 헤드 노드를 노드의 다음 속성에 할당하고, 그렇지 않으면 헤드 노드를 이 노드로 변경합니다. 노드, 이 위치의 노드 앞에 노드를 삽입하세요링크드 리스트의 길이 +1function removed(element){ let node = new Node(element); let pervious; let nextNode; let current = head; if(head != null){ while (current != node){ pervious = current; current = current.next; nextNode = current.next; } pervious.next = nextNode; length--; return true; }else{ return false; } }
1.
function removedAt(position){ let current = head; let pervious; let nextNode; let i = 0; while(i < position){ pervious = current; current = current.next; nextNode = current.next; } pervious.next = nextNode; length--; return true; }
function searchElement(element){ //输入元素,找到该元素后返回该元素的位置 if(head != null){ let node = new Node(element); let current; let index = 0; if(head == node){ return 0; }else{ current = head; while(current != node){ current = current.next; index++; } return index; } }else{ return -1; } }
연결 목록에 대해 더 많은 작업이 있습니다. 더 복잡한 연결 목록에는 이중 연결 목록(노드 초기화 시 이전 노드 추가)과 순환 연결 목록( 꼬리 노드의 다음 노드는 헤드 노드입니다.) 이러한 연결 목록 작업은 js를 사용하여 구현할 수도 있습니다. 여기서는 말할 것도 없습니다. 정리하자면 연결리스트의 핵심은 연결리스트의 노드가 두 개의 속성값을 갖는 객체로 간주될 수 있다는 점인데, 하나는 노드 값이고 다른 하나는 포인터이다. 연결리스트의 추가 및 삭제는 변경을 의미한다. 연결리스트 검색시 핵심은 current = current.next
입니다. 【관련 추천 :위 내용은 데이터 구조 학습: JavaScript를 사용하여 연결 목록 작업 구현(자세한 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!