개발의 흔적

자료구조 본문

알고리즘

자료구조

남들에게 도움을 주는 백엔드 개발자가 되자 2020. 4. 21. 15:59

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를 통해서 값들을 순회 가능

 

 

Comments