美文网首页
链式栈(js)

链式栈(js)

作者: mvlg | 来源:发表于2020-07-20 05:45 被阅读0次

特点:先进后出

链式存储结构

  1. 类似于 c 的结构体,在线性存储空间进行随机的空间分配,并且通过指针按顺序将随机分配的空间串联在一起。
  2. 由于 js 不能直接进行内存的空间的访问,这里由 c 语言所不具有的 class 对象结构进行替换,指针则由 this 充当。

栈的实现(javascript)

  1. 栈的结点对象
class StackNode
{
    constructor (data) 
    {
        this.data = data
        this.next = false
    }
    getData = () => this.data
    setData = data => this.data = data
    getNext = () => this.next
    setNext = next => this.next = next
}

  1. 栈对象
class Stack
{
    constructor () 
    {
        this.head = false
        this.tail = false
    }
    empty ()
    {
        return this.head === false
    }
    push (data) 
    {
        let temp = new StackNode(data)
        if (!this.head) 
        {
            this.head = this.tail = temp
        }
        else
        {
            temp.setNext(this.head)
            this.head = temp
        }
    }
    pop () 
    {
        if (this.empty()) return false
        let data = this.head
        this.head = this.head.getNext()
        return data.getData()
    }
}
  1. 栈测试
let S = new Stack()

S.push({'name': 'Jack'})
S.push(7)
S.push(8)
S.push(5)
S.push(6)
S.push(4)
S.push(1)
console.log(S.pop())
console.log(S.pop())
console.log(S.pop())
console.log(S.pop())
console.log(S.pop())
console.log(S.pop())
console.log(S.pop())

相关文章

  • 链式栈(js)

    栈 特点:先进后出 链式存储结构 类似于 c 的结构体,在线性存储空间进行随机的空间分配,并且通过指针按顺序将随机...

  • 0x06栈

    a、顺序栈 b、链式栈

  • 数据结构之 栈

    栈结构 链式栈 一.栈结构体 1构建空栈 2栈置空 3判断栈空 4获取栈顶 5入栈 6出栈 7便利栈 二.链式栈 ...

  • 顺序存储结构栈 共享栈 链式存储结构栈

  • 基于顺序存储/链式存储设计栈结构

    基于顺序存储/链式存储设计栈结构 栈限定性数据结构,先进后出。 顺序存储栈 链式存储栈

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

  • 栈与队列(一)

    在这篇文章里,我们来实现自定义的链式栈。首先我们来看看链式栈的结构及操作定义。 链式栈结构定义 首先,新建两个文件...

  • Java实现栈

    数组栈:压栈、出栈、返回栈顶元素 链式栈:压栈、出栈、返回栈顶元素

  • 链式栈

  • C++ 数据结构与算法 栈,队列,链式队列,循环队列

    栈 队列 链式队列 4 . 循环队列

网友评论

      本文标题:链式栈(js)

      本文链接:https://www.haomeiwen.com/subject/zdiskktx.html