본문 바로가기
프로그래밍 언어/자료구조

2.배열(Array) 구현

by lroot 2022. 5. 27.
728x90
반응형

Array의 특징

- 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조

- 정해진 크기가 있음

- 요소의 추가와 제거시 다른 요소들의 이동이 필요함

- 배열의 i번째 요소를 찾는 인덱스 연산이 빠름

- jdk클래스 : ArrayList, Vector

 

Array 구현

- MyArray.java

public class MyArray {

int[] intArr;
int count;

public int ARRAY_SIZE;
public static final int ERROR_NUM = -9999999;

public MyArray() 
{
count = 0;
ARRAY_SIZE = 10;
intArr = new int[ARRAY_SIZE];
}

public MyArray(int size)
{
count = 0;
ARRAY_SIZE = size;
intArr = new int[size];
}

public void addElement(int num)
{
if(count >= ARRAY_SIZE) {
System.out.println("not enough memory");
return; 
}
intArr[count++] = num;
}

public void insertElement(int position, int num)
{
int i;

if(position < 0 || position > count) {
return;
}

if(count >= ARRAY_SIZE) {
return;
}

for(i = count-1; i>=position; i++) {
intArr[i+1] = intArr[i];
}

intArr[position] = num;
count ++;

}

public int removeElement(int position)
{
int ret = ERROR_NUM;

if(isEmpty()) {
System.out.println("Array is empty");
return ret;
}

if(position < 0 || position > count-1) {

return ret;
}
ret = intArr[position];

for(int i = position; i<count-1; i++) {
intArr[i] = intArr[i+1];
}
count --;

return ret;

}

public int getSize()
{
return count;
}

public boolean isEmpty()
{
return false;

}
}

'프로그래밍 언어 > 자료구조' 카테고리의 다른 글

5.큐(Queue) 구현  (0) 2022.05.27
4.스택(Stack) 구현  (0) 2022.05.27
3.연결 리스트(LinkedList)구현  (0) 2022.05.27
1.여러가지 자료구조(선형/비선형)  (0) 2022.05.26

댓글