数据结构题目33:链接堆栈的操作

2020-05-07  本文已影响0人  玲儿珑
class Node{
    constructor (data, link) {
        this.data = data,
        this.link = link
    }
}
class Link{
    constructor (top) {
        this.top = top
        this.getItem = ""
        this.deleteItem = ""
    }
    //1. 链接堆栈初始化
    initialLink() {
        this.top = null
        return this.top
    }
    //2. 测试链接堆栈是否为空
    emptysLink() {
        return this.top == null
    }
    //3. 取当前栈顶元素
    getTops() {
        if (this.emptysLink()) {
            return 0
        } else {
            this.getItem = this.top.data
            return 1
        }
    }
    //4. 链接堆栈的插入
    pushLink(item) {
        let p 
        if (!(p = new Node(item, null))) {
            return 0
        } else {
            p.link = this.top
            this.top = p
            return 1
        }
    }
    //5. 链接堆栈的删除
    deleteLink() {
        let p 
        if (this.emptysLink()) {
            return 0
        } else {
            p = this.top
            this.deleteItem = p.data
            this.top = p.link
            p = null
            return 1
        }
    }
}

测试:

var link = new Link()
link
link.initialLink()
link.emptysLink()
link.pushLink(1)
link.pushLink(2)
link.pushLink(3)
link.pushLink(4)
link.pushLink(5)
link.getTops()
link.deleteLink()
上一篇 下一篇

猜你喜欢

热点阅读