bag
bag는 가장 간단한 자료구조라고 생각한다. (마치 배열과도 같은 느낌)
그만큼 간단하고 구현하기 쉬운 자료구조이기 때문이지 않을까...?
따라서 오늘은 bag 자료구조의 특징과 이를 어떻게 구현하는지에 대해 알아보고자 한다.
bag는 우리가 사용하는 가방과 같이 단순히 데이터들을 모아둔 것이라고 할 수 있다.
때문에 데이터 간의 중복이 허용되고 순서 또한 상관이 없는게 특징이다.
이런 특징을 바탕으로 Java를 이용하여 bag를 구현해보도록 할 것이다.
[구현 방법]
1. 배열을 이용하여 bag를 구현할 것이다. (ArrayBag)
2. bag는 데이터를 모아두고 관리하기 위한 용도이므로 데이터를 넣고(add) 뺄 수 있는 기능(remove)이 있다.
3. bag의 내용물을 관리하기 위해 몇 개의 데이터가 들어있는지 알아보는 기능(size), 해당 데이터가 있는지 알아보는 기능(search),
최대 수용 가능 데이터의 개수를 알아보는 기능(maxsize), bag가 꽉찼는지 알아보는 기능(full), bag가 비어있는지 알아보는 기능(empty)이 필요하다.
4. bag의 최대 수용 갯수는 사용자에게 입력받도록 만든다. 또한 데이터의 통일성을 위해 가방에 들어있는 데이터들은 모두 String 데이터로 한다.
5, 가방 기능을 종료하면 현재 가방에 들어있는 데이터를 출력한 후 종료한다.
[ArrayBag]
위 코드는 이번에 ArrayBag를 구현하면서 짠 코드이다. 각 기능에 대한 설명은 주석으로 설명하였다.
[Main]
위는 ArrayBag를 시험하기 위한 Main 클래스이다. 마찬가지로 설명은 주석으로 달았다.