2012104095.html
1.6 KB
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function Stack() {
// 스택 어레이
this.stack = [];
// Stack 오브젝트에서 푸시 함수 구현 :: elem 파라미터로 넘어온 element 를 this.stack 어레이에 푸시합니다.
this.push = function (elem) {
// push 할 새로운 배열을 만들어 주고
var pushArray = [elem];
// 기존 stack array 에 합쳐줍니다.
this.stack = this.stack.concat(pushArray);
};
// Stack 오브젝트에서 팝 함수 구현 :: 마지막 인덱스의 element 를 없애고, 해당 엘리먼트를 리턴합니다.
this.pop = function () {
// 스텍 길이 저장
var stackLength = this.stack.length;
// 리턴할 마지막 인덱스의 element 저장
var returnElem = this.stack[stackLength - 1];
// 스택의 마지막 element 없애기
this.stack.splice(stackLength - 1, 1);
// 마지막 인덱스의 element 를 리턴
return returnElem;
};
}
// 스택 인스턴스 생성
var stack = new Stack();
// 스택 인스턴스의 push 함수 호출
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
// 스택 인스턴스의 pop 함수를 호출하고 결과값을 console 로 찍기
console.log(stack.pop());
console.log(stack.pop());
console.log(stack.pop());
console.log(stack.pop());
console.log(stack.pop());
</script>
</body>
</html>