ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Stack
    Basic Programming/Data Structure 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





    ( 설명 추가 예정 )

ZER01NE