美文网首页
基于链表实现栈

基于链表实现栈

作者: 胡子先生丶 | 来源:发表于2018-11-22 21:20 被阅读0次

时间复杂度分析:压栈和弹栈的时间复杂度均为O(1)级别,因为只需更改单个节点的索引即可。
空间复杂度分析:在入栈和出栈的过程中,只需要一两个临时变量存储空间,所以O(1)级别。我们说空间复杂度的时候,是指除了原本的数据存储空间外,算法运行还需要额外的存储空间。

 public class Stack<T>
    {
        private Node<T> top = null;

        public bool push(T item)
        {
            if (top == null)//判断栈是否为空
            {
                top = new Node<T>(item);
                return true;
            }
            else
            {
                Node<T> temp = new Node<T>(item);
                temp.Next = top;//将元素插入到栈顶位置
                top = temp;
                return true;
            }
        }

        /// <summary>
        /// 移除栈顶
        /// </summary>
        /// <returns></returns>
        public T pop()
        {
            if (top == null)
            {
                return default(T);
            }
            else {
                Node<T> temp = new Node<T>();
                top = top.Next;

                if (top == null)//需要判断是否为空
                {
                    return default(T);
                }

                return top.Data;
            }
        }
    }

相关文章

  • 基于动态数组的实现 Java实现 基于链表的栈的实现 Java实现

  • 基于链表实现栈

    时间复杂度分析:压栈和弹栈的时间复杂度均为O(1)级别,因为只需更改单个节点的索引即可。空间复杂度分析:在入栈和出...

  • 栈的实现

    基于顺序表的栈实现: 测试代码: 基于顺序表的链表实现: 基础数据类: 测试代码: 以为这个会比链表东西会多一些,...

  • 链表应用--基于链表实现栈

    在上几小节中我们实现了基本的链表结构,并在上一节的底部给出了有关链表的源码,此处在贴一次吧,猛戳在开始栈的实现之前...

  • 03_栈stack

    基于双端链表实现内存里的栈区 (和堆对应)后进后出

  • 栈的实现(基于链表)

    先定义一个接口 写一个栈的类,继承Stack接口

  • 数据结构java描述

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

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

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

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

    单链表实现栈

  • Java集合系列之LinkedList源码分析

    前言 LinkedList是基于双向链表实现的,除了可以当链表来操作,它还可以当做栈,队列以及双端队列来使用,且是...

网友评论

      本文标题:基于链表实现栈

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