java数据结构之栈的实现,可是入栈,出栈操作;

  1. /**
  2. * java数据结构之栈的实现
  3. * 2016/4/26
  4. **/
  5. package cn.Link;
  6.  
  7. public class Stack{
  8. Node tail = new Node();
  9. Node nowNode = new Node(); //永远指向栈顶
  10. int size;
  11. Stack(){};
  12. Stack(String date){
  13. this.tail.date = date;
  14. this.tail.next = null;
  15. this.nowNode.next = this.tail;
  16. this.size = 1;
  17. }
  18.  
  19. //节点类
  20. class Node{
  21. String date;
  22. Node next;
  23. Node(){};
  24. Node(String date){
  25. this.date = date;
  26. }
  27. }
  28.  
  29. //向栈中插入数据
  30. public void Push(String date){
  31. Node preNode = new Node(date);
  32. preNode.next = this.nowNode.next;
  33. this.nowNode.next = preNode;
  34. this.size++;
  35. System.out.println("数据"+date+"被入栈");
  36. }
  37.  
  38. //出栈操作
  39. public void Pop(){
  40. if(this.nowNode.next != this.tail){
  41. System.out.println("数据"+this.nowNode.next.date+"被移除栈");
  42. this.nowNode.next = this.nowNode.next.next;
  43. }else{
  44. nowNode.next = null;
  45. System.out.println("此栈没有数据,数据为空");
  46. }
  47. this.size--;
  48. }
  49.  
  50. //遍历栈输出
  51. public void PrintStack(){
  52. Node preNode = new Node();
  53. preNode.next = this.nowNode.next;
  54. System.out.print("遍历输出栈: ");
  55. while(preNode.next != null){
  56. System.out.print(" -->"+preNode.next.date);
  57. preNode.next = preNode.next.next;
  58. }
  59. System.out.println("+++++++++++当前栈的长度为"+this.size);
  60. }
  61.  
  62. //清空栈
  63. public void clear(){
  64. this.nowNode.next = null;
  65. this.tail = null;
  66. this.size = 0;
  67. System.out.println("栈已被清空");
  68.  
  69. }
  70.  
  71. public static void main(String[] args){
  72. Stack stack = new Stack("sum1");
  73. stack.Push("sum2");
  74. stack.Push("sum3");
  75. stack.Push("sum4");
  76. stack.Push("sum5");
  77. stack.Push("sum6");
  78. stack.Pop();
  79. stack.Push("sum7");
  80. stack.Push("sum8");
  81. stack.PrintStack();
  82. stack.clear();
  83. }
  84. }

java 数据结构 栈的实现的更多相关文章

  1. java数据结构——栈(Stack)

    学习数据结构与算法是枯燥的,但只有坚持不懈的积累,才会有硕果累累的明天. /** * 继续学习Java数据结构 ————栈 * 栈的实现其实还是使用数组,只不过我们不能直接访问数组下标,而是通过一个指 ...

  2. java数据结构 栈stack

    栈(Stack) 栈(Stack)实现了一个后进先出(LIFO)的数据结构. 你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部. 当你从栈中取元素的时候,就从栈顶 ...

  3. Java数据结构——栈的应用(以数制转换为例子)

    看一万遍,不如自己动手实践,请不要直接copy代码,先自己去理解例子实现的原理,然后试着自己动手去实践. 用Java去实现栈操作,会用到stack这个类,这类中有几个方法需要知道他们的用法  bool ...

  4. Java数据结构——栈

    //================================================= // File Name : Stack_demo //-------------------- ...

  5. JAVA数据结构-----栈

    栈是Vector的一个子类,它实现了一个标准的后进先出的栈. 堆栈只定义了默认构造函数,用来创建一个空栈. 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法. 栈常用的五个方法: bo ...

  6. Java数据结构和算法(四)赫夫曼树

    Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...

  7. JAVA数据结构系列 栈

    java数据结构系列之栈 手写栈 1.利用链表做出栈,因为栈的特殊,插入删除操作都是在栈顶进行,链表不用担心栈的长度,所以链表再合适不过了,非常好用,不过它在插入和删除元素的时候,速度比数组栈慢,因为 ...

  8. 【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现

      本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型   栈是 ...

  9. java数据结构与算法之栈(Stack)设计与实现

    本篇是java数据结构与算法的第4篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型 栈是一种用于 ...

随机推荐

  1. delphi学习treeview中从表列名和数据添加为目录并双击自动选中

    1 unit Unit2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syst ...

  2. UNIX基础--控制台和终端

    虚拟控制台和终端 Virtual Consoles and Terminals: FreeBSD 虚拟控制台的默认配置为8个,但并不是硬性设置, 您可以很容易设置虚拟控制台的个数增多或减少. 虚拟控制 ...

  3. kvstore之memcached为存储介质

    ecstore中kvstore选用memcached作为存储介质 kvstore存储类选用base_kvstore_memcached(app/base/lib/kvstore/memcached.p ...

  4. Notepad++ V6.9.0 中文绿色便携版

    软件名称: Notepad++软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 3.4MB图片预览: 软件简介:Notepad中文版是一款非常有特色的编辑器,是开源 ...

  5. ural 1355. Bald Spot Revisited(数的素因子划分)

    1355. Bald Spot Revisited Time limit: 1.0 secondMemory limit: 64 MB A student dreamt that he walked ...

  6. 1010 Robot Motion

    Problem Description A robot has been programmed to follow the instructions in its path. Instructions ...

  7. Java语言国际化

    事实上,Java语言不可能支持所有国家和语言,如需要获取Java语言所支持的语言和国家,可调用Locale类的getAvailableLocale方法获取,该方法返回一个Locale数组,该数组里包含 ...

  8. Base64技术:把对象转变成字符串

    需求:在安卓移动端和服务器进行数据交互的时候,有些时候需要上传,下载文件.如果所有的参数都变成字符串,会更加方便. 原理:Base64只是把byte[]数组进行了编码,然后再解码的过程,文档内容无法直 ...

  9. jenkins 中集成JNI的坑

    有包名1.生成class> javac myjni\HelloJNI.java2.生成.h文件> javah -d include myini.HelloJNI3.生成.dll文件> ...

  10. 【01-14】java ThreadLocal工具类

    自定义ThreadLocal package concurrent; import java.util.HashMap; import java.util.Map; /** * @author alo ...