728x90
I. ์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ Stack
์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ ์คํ(Stack)์ ์ค๋ฆฐ๋ํ์๊ณผ ๋น์ทํ๋ค.
์ ์ผ ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ผ๋ก ๊ฐ๊ณ ๋งจ ๋์ค์ ๋ค์ด์จ ๋ฐ์ดํฐ๋ top์ด ๋๋ค. (FILO -> First In Last Out)
๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋๊ฒ์ด (Push) ๋๊ฐ๋๊ฒ์ (Pop)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
II. ์คํ ์๊ณ ๋ฆฌ์ฆ ์๋ฐ์ฌ์ฉ ์์
1. MainClass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
package main;
import stack.ArrayStack;
public class MainClass {
public static void main(String[] args) {
/*
Stack : First In Last Out
in - > push
out - > pop
*/
ArrayStack stack = new ArrayStack(5);
//์ฒซ๋ฒ์งธ ๋ฃ๊ธฐ
String str = "AAA";
stack.push(str);
//์ฒซ๋ฒ์งธ ๊บผ๋ด๋ณด๊ธฐ
String peekStr = (String)stack.peek();
System.out.println("top" + peekStr);
//๋๋ฒ์งธ ๋ฃ๊ธฐ
str = "BBB";
stack.push(str);
//๋๋ฒ์งธ ๊บผ๋ด๋ณด๊ธฐ
peekStr = (String)stack.peek();
System.out.println("top" + peekStr);
//์ธ๋ฒ์งธ ๋ฃ๊ธฐ
str = "CCC";
stack.push(str);
//์ธ๋ฒ์งธ ๊บผ๋ด๋ณด๊ธฐ
peekStr = (String)stack.peek();
System.out.println("top" + peekStr);
//๋งจ ์์ ๋ฐ์ดํฐ pop(์ญ์ ) ์ํค๊ธฐ
String popStr = (String)stack.pop();
System.out.println("pop str = " + popStr);
//-> ๋งจ๋ง์ง๋ง์ ๋ฃ์ CCC๊ฐ ํ์ด๋์จ๋ค
//CCC๊ฐ ํ์ด๋์จ ์ดํ ๋งจ์์ ๋ฐ์ดํฐ๋ณด๊ธฐ
peekStr = (String)stack.peek();
System.out.println("top = "+peekStr);
// BBB๊ฐ ๋์จ๋ค.
}
}
|
cs |
2. ArrayStack Class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
package stack;
public class ArrayStack {
private int top;
private int maxSize; //ํ์ ๋ ์คํ๊ณต๊ฐ
private Object stackArray []; //๋ง์ ์๋ฃํ ๋ฐ์๋ค์ด๊ธฐ์ํด
public ArrayStack(int maxSize) {
this.maxSize = maxSize;
stackArray = new Object[maxSize];
top=-1;
}
// ์คํ๊ณต๊ฐ์ด ๋น์ด ์๋์ง ํ์ธํ๋ ์์
public boolean isEmpty() {
return (this.top == -1);
}
// ์คํ๊ณต๊ฐ์ด ๊ฝ ์ฐจ์๋์ง ํ์ธํ๋ ์์
public boolean full() {
return (this.top == maxSize-1);
}
// ์คํ๊ณต๊ฐ์ ์ถ๊ฐํ๋ ์์
(Object item ์ธ๋ถ์์ ๋ฐ์๋ค์)
public void push(Object item) {
if(full()) {
System.out.println("์คํ ๊ณต๊ฐ์ด ๊ฝ ์ฐจ์์ต๋๋ค.");
return;
}
top++; //์ถ๊ฐ ์์
stackArray[top] = item; //top์ item๋ฃ์ด์ค๋ค 0๋ฒ์ง๋ถํฐ
}
//์ญ์
public Object pop() {
Object item = peek(); //์ ์ผ ์์๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ค๋ค.
top--;
return item;
}
// ์ต์์์ ๋ฐ์ดํฐ(๊ณต)
public Object peek() {
if(isEmpty()) {
System.out.println("์คํ ๊ณต๊ฐ์ด ๋น์ด์์ต๋๋ค.");
return null;
}
return stackArray[top];
}
}
|
cs |
'๐ฎ ์๊ณ ๋ฆฌ์ฆ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ ํ(Queue)์ ๊ธฐ๋ณธ ์์ (0) | 2021.02.02 |
---|
๋๊ธ