본문 바로가기
Programming/자료구조

[Javascript] 연결 리스트

by Bam_t 2021. 11. 17.
728x90

자료구조를 다시 복습할 겸, 알고리즘 포스팅에 활용도 하기 위해 자바스크립트로 다시 자료구조를 써보려고 합니다. 자료구조의 설명 자체는 기존 링크를 달기로 하고, 구현 방식은 조금 다르게 만들어 보기로 했습니다.


2021.09.03 - [Programming/자료구조] - 연결 리스트 Linked List

 

연결 리스트 Linked List

선형 리스트는 일반적인 배열과 다를바 없으므로 다시 작성하는 자료구조에서는 넘어가고 바로 연결 리스트부터 공부를 시작하겠습니다. 0. 연결 리스트 연결 리스트는 선형 리스트와는(순차

bamtory29.tistory.com

 

class Node {
    constructor(data, nextNode = null) {
        this.data = data;
        this.nextNode = nextNode;
    }
}
class LinkedList {
    constructor() {
        this.head = null;
        this.size = 0;
    }

    insertNode(data) {
        const newNode = new Node(data);
        let current = this.head;

        if (this.size === 0) {
            this.head = new Node(data, this.head);
            this.size++;
        }
        else {
            while (current.nextNode) {
                current = current.nextNode;
            }
            current.nextNode = newNode;
            this.size++;
        }
    }

    searchNode(index) {
        let current = this.head;
        let count = 0;

        while (count < index) {
            current = current.nextNode;
            count++;
        }

        return current.data;
    }

    removeNode(index) {
        let current = this.head;
        let preNode;
        let removeNode;
        let count = 0;

        if (index === 0) {
            this.head = this.head.nextNode;
            this.size--;
        }
        else {
            while (count < index) {
                preNode = current;
                current = current.nextNode;
                count++;
            }

            removeNode = current;
            preNode = removeNode.nextNode;
            this.size--;
        }
    }
}

https://github.com/Bam-j/algorithm-study/blob/main/study-code/data-structure/linked-list.js

 

GitHub - Bam-j/algorithm-study: 블로그 알고리즘 정리 포스트 코드 수록 + 코딩 테스트 코드 수록

블로그 알고리즘 정리 포스트 코드 수록 + 코딩 테스트 코드 수록. Contribute to Bam-j/algorithm-study development by creating an account on GitHub.

github.com

참조

https://www.zerocho.com/category/Algorithm/post/58008a628475ed00152d6c4d

 

(Algorithm) 자료구조(연결 리스트, linked list)

안녕하세요. 이번 시간부터는 잠깐 화제를 돌려 자료구조에 대해 알아보고 가겠습니다. 자료구조는 데이터의 표현 및 저장 방법을 의미합니다. 알고리즘은 그 저장된 데이터를 처리하는 과정이

www.zerocho.com

 

728x90

댓글