개발의 흔적
자료구조 본문
1. stack -> 선형 구조 이며 먼저 들어온 데이터는 나중에 빠진다.
예제문제
package Stack;
import java.util.ArrayList;
class Mystack {
private ArrayList arrayList = new ArrayList();
// 가장 첫번째 값을 push
public void push(String str) {
arrayList.add(str);
}
// 가장 마지막 값을 리턴
public String pop() {
// 스택의 길이를 size로 찾기
int len = arrayList.size();
// 만약에 스택 길이가 0이면 null 또는 string 반환
if( len == 0 ) {
return null;
}
// 마지막 값을 뺴야하기 때문에 -1을 해줘야함
return arrayList.remove(len - 1);
}
}
public class Stack {
// 스택이란 가장 나중에 들어온 값을 반환한다.
public static void main(String[] args) {
Mystack stack = new Mystack();
stack.push("A");
stack.push("B");
stack.push("C");
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
2. queue - > 선형 구조 이며 먼저 들어온 데이터는 바로바로 빠진다.
package Stack;
import java.util.ArrayList;
class Myqueue {
private ArrayList arrayList = new ArrayList();
// 가장 첫번째 값을 push
public void inQueue(String str) {
arrayList.add(str);
}
// 가장 마지막 값을 리턴
public String deQueue() {
// 스택의 길이를 size로 찾기
int len = arrayList.size();
// 만약에 스택 길이가 0이면 null 또는 string 반환
if( len == 0 ) {
return null;
}
// 마지막 값을 뺴야하기 때문에 -1을 해줘야함
return arrayList.remove(0);
}
}
public class Queue {
// 스택이란 가장 나중에 들어온 값을 반환한다.
public static void main(String[] args) {
Myqueue queue = new Myqueue();
queue.inQueue("A");
queue.inQueue("B");
queue.inQueue("C");
System.out.println(queue.deQueue());
System.out.println(queue.deQueue());
System.out.println(queue.deQueue());
System.out.println(queue.deQueue());
}
}
3. LinkedList -> -> 선형 구조이며 자료의 변동이 많을 시 주로 사용
4. Array -> 선형 구조이며 자료의 변동이 없을시 주로 사용
5.Hash - > key : value이고 산술연산이기에 검색의 속도가 빠르고 키는 중복이안된다.
6. ArrayList - > 선형 구조 이며 데이터를 저장할때 사용하고 값이 중복이 되고 size를 통해서 값들을 순회 가능