Development/알고리즘

[4] [알고리즘 - 자료구조] 순차리스트 란? (선형구조) javascript 구현

Jun Mr 2021. 11. 8. 15:53
728x90
반응형

순차 리스트란?

 

리스트, 순차 리스트, 배열 이렇게 표현이 됩니다.

 

동일한 성격을 가진 자료들이 연속된 공간에 저장

되는 선형 자료구조입니다.

음식이라는 공통 성격의 자료들이 분명

탐색할 때는 빠른 속도의 장점이 있었으나,

삭제 또는 제거를 하기 위해서는

양쪽으로 존재하는 데이터를

하나씩 옮겨주어야 하는

번거로움이 있습니다.

 

이러한 배열을

javascript 프로그래밍으로

한 번 활용해보겠습니다.

 

    const food = ["수박", "사이다", "바나나", "삼겹살", "오이", "상추"];
    const foodArray = new Array("수박", "사이다", "바나나", "삼겹살", "오이", "상추");

    console.log("food 2 = ", food[2]); 
    // food 2 =  바나나
    
    console.log("foodArray 2 = ", foodArray[2]);
    //foodArray 2 =  바나나

 

위처럼 2가지 방법으로

배열을 선언할 수 있습니다.

 

그렇다면

추가를 하기위해

어떤 과정으로 추가를 해야 할까요?

 

/* 
    arr = 추가하고자 하는 배열
    value = 추가 값
    path = 추가 위치
*/
const insertArrayValue = (arr, value, path) => {

    // 추가할 위치의 원소를 옮겨 공간 확보
    for (let i = arr.length -1; i >= path; i--) {
        arr[i + 1] = arr[i];
    }

    // 원소 추가
    arr[path] = value;

    return arr;
}

 

위와 같은 메서드를 만들어 주었습니다.

 

    const food = ["수박", "사이다", "바나나", "삼겹살", "오이", "상추"];
    const foodArray = new Array("수박", "사이다", "바나나", "삼겹살", "오이", "상추");

    console.log("food 2 = ", food[2]);
    // food 2 =  바나나

    console.log("foodArray 2 = ", foodArray[2]);
    // foodArray 2 =  바나나

    console.log("추가 전 - ", food);
    // 추가 전 -  [ '수박', '사이다', '바나나', '삼겹살', '오이', '상추' ]
    insertArrayValue(food, '추가', 2);
    console.log("추가 후 - ", food);
    // 추가 후 -  ['수박', '사이다', '추가', '바나나', '삼겹살', '오이', '상추']

 

마찬가지로

삭제를 하기 위해서

요소 삭제 후,

데이터를 하나씩 당겨주는 작업을

해주어야 합니다.

 

 

이러한 추가 및 삭제에 대한 단점이 있는

리스트를 개선한 것이

연결 리스트입니다.

 

다음에는 연결 리스트에 대해

알아보겠습니다.

 

 

 

[5] [알고리즘 - 자료구조] 연결리스트(Linked List)란? (선형구조) javascript 구현

연결리스트 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조입니다. 좀 더 쉽게 알아보겠습니다. 데이터와 다음 순서의 주소 값을 가지고 하

developerjun2.tistory.com

 

반응형