지로원
2018. 12. 11. 16:45
-- Python --
class Stack():
def __init__(self):
self.data = []
self.top = 0
#self.max = 100
def push(self, value):
self.data.append(value)
self.top += 1
def pop(self):
if self.top is 0:
print('Error. Stack is empty.')
return
self.top -= 1
data = self.data[self.top]
del self.data[self.top]
return data
def peek(self):
if self.top is 0:
print('Error. Stack is empty')
return
return self.data[self.top-1]
def size(self):
return self.top
def clear(self):
self.top = 0
self.data = []
def state(self):
print(self.data)
### Test Code ###
s = Stack()
s.push('hello world')
s.push('hello python')
s.state()
print('pop : ' + str(s.pop()))
print('peek : ' + str(s.peek()))
print('size : ' + str(s.size()))
s.state()
s.clear()
s.state()
Result
-- Javascript --
function Stack() {
let data = [];
let top = 0;
// this.max = 100;
this.push = (value) => {
data[top++] = value;
};
this.pop = () => {
if(top === 0) console.log("Error. Stack is empty");
else {
let popedValue = data[--top];
// delete data[top];
data.splice(top, 1);
return popedValue;
}
};
this.peek = () => {
if(top === 0) console.log("Error. Stack is empty");
else return data[top - 1];
};
this.size = () => top;
this.clear = () => {
top = 0;
data = {};
};
this.state = () => {
console.log(data);
};
}
/* Test Code */
let s = new Stack();
s.push("hello world");
s.push("hello javascript");
s.state();
console.log(`pop : ${s.pop()}`);
console.log(`peek : ${s.peek()}`);
console.log(`size : ${s.size()}`);
s.state();
s.clear();
console.log("=== after clear ===");
s.state();
Result
( 설명 추가 예정 )