美文网首页
利用链表实现栈

利用链表实现栈

作者: 梁森的简书 | 来源:发表于2021-02-02 22:37 被阅读0次

入栈:插入到头节点的下一个节点。 出栈:移除头节点的下一个节点

/// 栈
struct Stack {
    
    private var head = TNode<Any>(item: nil, next: nil)
    private var count = 0
    
    func isEmpty() -> Bool {
        if count == 0 {
            return true
        } else {
            return false
        }
    }
    
    mutating func push(item: Any) {
        let first = head.next
        let newNode = TNode(item: item, next: first)
        head.next = newNode
        count += 1
    }
    
    mutating func pop() -> Any? {
        let first = head.next
        if first == nil {
            return nil
        }
        head.next = first?.next
        count -= 1
        return first?.item
    }
    
    func printStack() {
        var node = head.next
        while node != nil {
            print("\(node?.item)")
            node = node?.next
        }
    }
}

相关文章

  • 栈和队列

    栈——后入先出 利用数组实现,有stack.top表示栈顶元素,为数组的最后一个元素。(也可利用链表实现) 验证栈...

  • 链表反转

    链表反转的思路:1.利用栈后进先出的特性,将链表的每个节点都Push进栈,然后再Pop出栈,保存进链表,实现反转。...

  • 利用链表实现栈

    入栈:插入到头节点的下一个节点。 出栈:移除头节点的下一个节点

  • 链表 java实现

    链表java实现:因为面试/考试真的很喜欢考链表!!! 题目一:从尾到头打印链表思路:利用stack【判断栈是否为...

  • 数据结构java描述

    接口 栈 队列 集合 并查集 映射 数组 链表 栈 数组实现 链表实现 队列 数组实现 链表实现 二分搜索树 集合...

  • 链表实现栈(LIFO)、队列(FIFO)

    今天来用链表实现栈 栈可以用链表实现,压栈操作即在链表头赋值,弹栈只需要将链表头元素指向下一个即可 由此可见,链表...

  • 单链表实现栈(C语言)

    单链表实现栈

  • 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

    题目要求:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 利用栈实现的思路 对于链表数据的打印,...

  • [剑指offer] 链表01:从尾到头打印链表

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解题思路(Java) 1)利用栈来实现...

  • 数据结构基础--链式栈

    链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不...

网友评论

      本文标题:利用链表实现栈

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