본문 바로가기
  • 소소한 개발자 이야기
Software/Data Structure

배열 기반 연결 리스트(Linked list)

by Siwan_Min 2019. 12. 26.
728x90

배열 기반의 연결리스트입니다. 

배열 기반의 연결리스트는 아래와 같은 특징이 있습니다.

(1) 특정한 위치의 원소에 즉시 접근이 가능하다.

(2) 메모리 할당 해야하는 단점이 있다.

(3) 원하는 위치로의 삽입이나 삭제가 비효율적이다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#define INF 10000
int arr[INF]; //메모리가 INF(10000)인 배열을 생성
int count = 0;
void addBack(int data) {
    arr[count] = data;
    count++;
}
void addFirst(int data) {
    for (int i = count; i >= 1; i--) {
        arr[i] = arr[i - 1];
    }
    arr[0= data; 
    count++;
}
void show() {
    for (int i = 0; i < count; i++) {
        printf("%d ", arr[i]);
    }
}
void removeAt(int index) {
    for (int i = index; i < count - 1; i++) {
        arr[i] = arr[i + 1];
    }
    count--;
}
int main(void) {
    addFirst(4);
    addFirst(5);
    addFirst(1);
    addBack(7);
    addBack(6);
    addBack(8);
    removeAt(3);
    show();
    system("pause");
    return 0;
}
 

1 5 4 7 6 8


addBack() 함수 - 원소를 배열의 맨 마지막에 삽입 해줍니다. 

addFirst() 함수 - 배열의 인덱스에 저장된 값들을 한 칸씩 뒤로 이동시키고 맨 첫번째 인덱스에 데이터 값을 입력한다. 

removeAt() 함수 - 특정한 위치의 원소를 삭제해준 뒤 다시 삭제된 원소 뒤에 있는 값들을 앞으로 당겨줍니다.  

728x90

'Software > Data Structure' 카테고리의 다른 글

스택(Stack) 구현하기  (0) 2020.07.10
큐(queue) 구현하기  (0) 2020.07.10

댓글