学完链表和栈,数组模拟栈学完后,自己根据链表写了个链栈,虽然只是简单的实现了入栈出栈遍历。收获还是很大的。

在push这里思考了一会,思路是:传入一个数字,push里创建一个节点node,把数据加入node里,让head.next指向node(新节点),然后让node.next指向top,把node再换成top。

**package stack;public class LinkedListStackDemo {public static void main(String[] args) {SingleLinkedList singleLinkedList = new SingleLinkedList();singleLinkedList.push(1);singleLinkedList.push(2);singleLinkedList.push(3);singleLinkedList.push(4);singleLinkedList.push(5);singleLinkedList.show();singleLinkedList.pop();singleLinkedList.pop();singleLinkedList.pop();}
}//链栈
class SingleLinkedList {private Node top;private static int size;//初始化栈public SingleLinkedList() {size = 0;}private Node head = new Node();//空public boolean isEmpty() {return head.next == null;}//入栈public void push(int data) {Node temp = new Node();temp.setData(data);head.next = temp;temp.next = top;top = temp;size++;}//出栈public void pop() {if (isEmpty()) {System.out.println("栈空");return;}System.out.println("出栈的是:" + top.getData());head.next = top.next;top = top.next;size--;}//遍历输出public void show(){if (isEmpty()){System.out.println("栈空");return;}Node temp = head.next;for (int i = 1; i <= size; i++){System.out.printf("栈的第 %d 个元素是:%d\n",i,temp.getData());temp = temp.next;}}
}//数据类
class Node{private int data;public Node next;public int getData() {return data;}public void setData(int data) {this.data = data;}@Overridepublic String toString() {return "Node{" +"data=" + data +'}';}
}
**
结果:栈的第 1 个元素是:5
栈的第 2 个元素是:4
栈的第 3 个元素是:3
栈的第 4 个元素是:2
栈的第 5 个元素是:1
出栈的是:5
出栈的是:4
出栈的是:3

数据结构 - 栈(链表实现栈的入栈出栈)相关推荐

  1. 理解——先序遍历是入栈过程,中序遍历是出栈过程

    遇到这样一道题:先序序列为a,b,c,d的不同二叉树的个数是多少? 拿到这个问题 首先,要了解到先序遍历和中序遍历都是需要用到栈,其中,先序遍历是入栈过程,中序遍历是出栈过程 然后,二叉树的先序序列和 ...

  2. 元素入栈顺序确定,共有多少种出栈顺序?----Python

    文章目录 问题描述 对栈的理解 题目的思考 python代码 卡特兰数 扩展思路 问题描述 前几天看到一个题目,假设五个元素的入栈顺序为e1.e2.e3.e4.e5,那么共有多少种出栈顺序?一时之间思 ...

  3. PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 题意:将1~N压栈,判断给定序列是否是合法的出栈序列. 对于序列1~N中的每个值i,先将其压入栈.然后对于它就有两种处理方法:要么压 ...

  4. 出栈(释放栈)和引用栈内数据意义不等同,和嵌套有关系但不是等同关系,局部变量进栈操作,不是局部变量自动带有进栈指令。汇编语言后局部变量操作是包含进栈操作指令PUSH和栈内地址存储数据调用,出栈。

    出栈(释放栈)和引用栈内数据意义不等同,和嵌套有关系但不是等同关系,局部变量进栈操作,不是局部变量自动带有进栈指令.汇编语言后局部变量操作是包含进栈操作指令PUSH和栈内地址存储数据调用,出栈. 2. ...

  5. c语言堆栈基本代码入栈出栈_c语言的简单的进栈出栈

    这个代码运行时只能输入4个以内的数有输出4个以上就没有输出了求大神看看#include#include#defineStack_Size50typedefstructSeqstack{intelem[ ...

  6. PTA 栈 (20分)(全网首发)(实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1))

    题目描述: 我们知道平凡的栈有几个操作: push(value) 将 value 压入栈 pop() 将栈顶元素弹出, 并返回这个弹出的元素. 现在我们想要在平凡栈的基础上实现以下几个操作: push ...

  7. 栈顶指针不同进行“进、出”栈的易错题

    1.若一个栈元素用数组data[1..n]存储,初始栈顶指针top为n,则以下元素x进栈最适合的操作是______. A.top++; data[top]=x; B.data[top]=x; top+ ...

  8. 【数据结构入门】栈(Stack)的实现(定义、销毁、入栈、出栈等) | 图解数据结构,超详细哦~

    文章目录 (1)前言 1)栈的概念 2)进栈出栈的形式 3)栈的存储结构 (2)栈的实现(顺序栈) 1)栈的定义 2)栈的初始化 3)栈的销毁 4)入栈 5)出栈 6)检测栈是否为空 7)获取栈中有效 ...

  9. 数据结构 线性链表栈

    #ifndef _MY_LINKSTACK_H_ #define _MY_LINKSTACK_H_typedef void LinkStack;//创建链表栈 LinkStack* LinkStack ...

  10. 数据结构与算法--举例分析法- 栈的压入弹出序列

    举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...

最新文章

  1. Linux学习之CentOS(三十四)--配置域主DNS服务器
  2. mysql 中文 length_mysql length()中文长度一些问题整理
  3. 皮一皮:内涵了...
  4. 令子元素垂直居中(并且子元素的高度不固定)
  5. signature=16ceadeb007b12c6b3bcab834073ab21,Distributed Backscattering
  6. 新建一个虚拟环境 用于django的项目
  7. python安装和更新pip
  8. 服务器重装系统u盘启动不了怎么办,重装系统时BIOS不识别U盘启动盘怎么办
  9. Visual Studio 2008 SP1 安装失败的解决方法
  10. 计算机科学技术专业单片机,计算机科学与技术专业毕业论文---基于单片机的智能浇花系统的设计与实现.docx...
  11. android导入excel文件格式,android 把数据导入到excel文件中的三种方法
  12. 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
  13. 美国人口与种族变迁史
  14. 光条中心线提取-Steger算法(基于Hessian矩阵)类似于ArcScan提取道路中心线
  15. 滴滴出行2016校招编程题
  16. POA委员会选举机制
  17. CCF 201709-2 公共钥匙盒 (Java 100分)
  18. 05.ESP8266连接网络
  19. 中央一号文件力推乡村振兴,VR全景如何构建数字乡村?
  20. 模仿京东-商品详情页前端样式 CSS+html+js

热门文章

  1. Buying Feed, 2010 Nov (单调队列优化DP)
  2. 简单的实现RAII封装。
  3. 740. Delete and Earn
  4. [剑指offer][JAVA]面试题第[26]题[树的子结构][递归]
  5. [Leedcode][JAVA][面试题 01.07][找规律][旋转数组]
  6. 武大计算机专业湖北录取分数线,武汉大学2020年本科一批分专业录取分数统计(湖北省)...
  7. 按群计数10以内_【乐玩乐学】有趣的计数活动
  8. php关闭按钮,C#_winform去掉右上角关闭按钮的方法,一种方法是可以在窗体的属性 - phpStudy...
  9. C# winform中判断控件类型
  10. python源码编译 mingw_在windows上用gcc(mingw32)从命令行编译Cython扩展