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

/**
* java数据结构之栈的实现
* 2016/4/26
**/
package cn.Link; public class Stack{
Node tail = new Node();
Node nowNode = new Node(); //永远指向栈顶
int size;
Stack(){};
Stack(String date){
this.tail.date = date;
this.tail.next = null;
this.nowNode.next = this.tail;
this.size = 1;
} //节点类
class Node{
String date;
Node next;
Node(){};
Node(String date){
this.date = date;
}
} //向栈中插入数据
public void Push(String date){
Node preNode = new Node(date);
preNode.next = this.nowNode.next;
this.nowNode.next = preNode;
this.size++;
System.out.println("数据"+date+"被入栈");
} //出栈操作
public void Pop(){
if(this.nowNode.next != this.tail){
System.out.println("数据"+this.nowNode.next.date+"被移除栈");
this.nowNode.next = this.nowNode.next.next;
}else{
nowNode.next = null;
System.out.println("此栈没有数据,数据为空");
}
this.size--;
} //遍历栈输出
public void PrintStack(){
Node preNode = new Node();
preNode.next = this.nowNode.next;
System.out.print("遍历输出栈: ");
while(preNode.next != null){
System.out.print(" -->"+preNode.next.date);
preNode.next = preNode.next.next;
}
System.out.println("+++++++++++当前栈的长度为"+this.size);
} //清空栈
public void clear(){
this.nowNode.next = null;
this.tail = null;
this.size = 0;
System.out.println("栈已被清空"); } public static void main(String[] args){
Stack stack = new Stack("sum1");
stack.Push("sum2");
stack.Push("sum3");
stack.Push("sum4");
stack.Push("sum5");
stack.Push("sum6");
stack.Pop();
stack.Push("sum7");
stack.Push("sum8");
stack.PrintStack();
stack.clear();
}
}

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. hellobruce

  2. ESFramework 4.0 进阶(01)-- 消息

    需要交互的分布式系统之间通过消息来传递有意义的信息.消息是通信框架的核心.离开了消息,再谈通信框架就没有任何意义,所以,消息是ESFramework中一个最核心的概念. 一. 消息的类别 在具体的应用 ...

  3. 有关下行HARQ的一切

    1. 对于下行HARQ,有几种类型的下行传输需要UE反馈ACK/NACK 动态调度的下行传输:UE收到一个使用C-RNTI或TC-RNTI(对应随机接入过程中的Msg4)加扰的PDCCH和PDSCH, ...

  4. 禁用 VS2010 的 vcpkgsrv.exe 运行

    VS2010经常使用一段时间后巨卡,发现vcpkgsrv.exe这个进程相当占内存,但是结束后又会自己启动,百度之原来是IntelliSense的问题,关闭之即可,设置如下

  5. 创建透明CEdit控件

    1.在资源编辑器中将Edit控件的Border设为none(当然也可以在代码中修改窗口样式) 2.在重载CEdit的类中响应MSG_OCM_CTLCOLOREDIT消息,在处理函数中将背景模式设为透明 ...

  6. linux安装配置solr

    一.JDK的安装和配置 下载.解压jdk-7u79-linux-x64.gz 1.tar -zxvf jdk-7u79-linux-x64.gz -c /usr/java/ 解压到/usr/java/ ...

  7. Erlang的Unicode支持

    在R13A中, Erlang加入了对Unicode的支持.本文涉及到的数据类型包括:list, binary, 涉及到的模块包括stdlib/unicode, stdlib/io, kernel/fi ...

  8. 移动端touch事件影响click事件的相关解决方法

    preventDefault()的方法,阻止事件的默认行为. 在移动端,手指点击一个元素,会经过:touchstart --> touchmove -> touchend -->cl ...

  9. js移动端tap事件封装

    这几天做项目,发现移动端需要触摸事件,而click肯定是不行的,于是我对tap事件封装进行了搜索,找到了一篇文章,原文地址如下:http://www.jb51.net/article/50663.ht ...

  10. drawableLayout的使用(转载讲的比较清晰的文章)

    创建drawbler的布局文件 初始化drawbler的列表 响应drawable列表点击事件 现在侧滑菜单使用很多,大都是通过SlidingMenu实现.现在也可以通过DrawerLayout 创建 ...