Skip to content

Commit 5a27e71

Browse files
Create dynamic_array_test.cpp
1 parent 724b106 commit 5a27e71

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

Appendix B/dynamic_array_test.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
int* arr;
5+
int len = 0; // 실제 데이터가 들어있는 크기
6+
int capacity = 0; // 현재 삽입이 가능한 최대 크기
7+
8+
void init(){
9+
arr = new int[1];
10+
capacity = 1;
11+
}
12+
13+
void expand(){
14+
15+
}
16+
17+
void insert(int idx, int num){
18+
if(???????){
19+
expand();
20+
}
21+
22+
for(int i = len; i > idx; i--)
23+
arr[i] = arr[i-1];
24+
arr[idx] = num;
25+
len++;
26+
}
27+
28+
void printArr(){
29+
for(int i = 0; i < len; i++) cout << arr[i] << ' ';
30+
cout << "| " << len << ' ' << capacity;
31+
cout << "\n\n";
32+
}
33+
34+
void insert_test(){
35+
cout << "***** insert_test *****\n";
36+
insert(0, 10); // 10, len = 1, capacity = 1
37+
printArr();
38+
insert(0, 30); // 30 10, len = 2, capacity = 2
39+
printArr();
40+
insert(1, 20); // 30 20 10, len = 3, capacity = 4
41+
printArr();
42+
insert(3, 40); // 30 20 10 40, len = 4, capacity = 4
43+
printArr();
44+
insert(1, 50); // 30 50 20 10 40, len = 5, capacity = 8
45+
printArr();
46+
insert(0, 15); // 15 30 50 20 10 40, len = 6, capacity = 8
47+
printArr();
48+
}
49+
50+
int main(void) {
51+
init();
52+
insert_test();
53+
}

0 commit comments

Comments
 (0)