Реализация стека в JavaScript с использованием Linded List

// Stack Implementation using LinkedList.

class StackNode{
    constructor(data) {
        this.data=data;
        this.next=null;
    }
}

var top =null;

function isEmpty() {
    if(top==null)
        console.log("Stack is Empty");
    else
        console.log("Stack is not empty");
}

function push(data){
    const newNode = new StackNode(data);
    if(top == null){
        top=newNode;
    } else{
        const temp = top;
        top=newNode;
        newNode.next =temp;
    }
}

function pop(){
    if(top == null){
        console.log("Stack is Empty");
    } else {
        var popped = top.data;
        top=top.next;
    }
    return popped;
}

function print(top){
    let p = top;
    str="";
    while(p!=null){
        str+=p.data+" ";
        p=p.next;
    }
    console.log("Elements in stack\n", str);
}

function peek(){
    if(top == null){
        console.log("Stack is Empty");
    } else {
        return top.data;
    }
}

push(10);
push(20);
push(30);
push(40);
push(50);
console.log(pop()+" popped in stack");
console.log(peek()+" is top element in stack");
print(top);

// Time Complexity -> O(1)
// Space Complexity -> O(1)
Aayush