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 |
댓글