Java栈的简单实现
* 数据结构与算法Java实现 栈
*
* @author 小明
*
*/
public class MyStack {
private Node top;// 头指针
int size;// 长度 public MyStack() {
top = null;
size = 0;
} // 进栈函数
public void push(Node node) {
if (size == 0) {// 栈为空时
top = node;
size++;
} else {// 栈不为空时
node.setNext(top);
top=node;
size++;
}
}
//出栈函数
public void pop() throws IndexException {
if(size==0) {
throw new IndexException("索引错误!");
}else {
top=top.getNext();//出栈
size--;
}
}
@Override
public String toString() {
String str=" ";
Node temp=top;
while(temp!=null){
str+=temp.getElement()+" ";
temp=temp.getNext();
}
str="["+str+" ]";
return str;
}
public static void main(String[] args) throws IndexException {
MyStack mystack=new MyStack();
mystack.push(new Node(0));
mystack.push(new Node(1));
mystack.push(new Node(2));
mystack.pop();
mystack.push(new Node(3));
System.out.println(mystack);
}
} class Node<T> {
private T element;// 元素
private Node next;// 后继 public Node(T element) {// 初始化函数
this.element = element;
this.next = null;
} public void setNext(Node node) {
this.next = node;
} public Node getNext() {
return next;
} public T getElement() {
return element;
}
} /*
* 索引异常类
*/
class IndexException extends Exception {
public IndexException() { } public IndexException(String s) {
super(s);
}
}
Java栈的简单实现的更多相关文章
- 数据结构笔记--栈的总结及java数组实现简单栈结构
杂谈"栈"结构: 栈(Stack)是一种插入删除操作都只能在一个位置上进表,这个位置位于表的末端,叫做栈顶(Top). 对栈的基本操作有push和pop,表示进栈和出栈.也就相当于 ...
- 从几个sample来学习JAVA堆、方法区、JAVA栈和本地方法栈
最近在看<深入理解Java虚拟机>,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构: 感觉有 ...
- java虚拟机 jvm java堆 方法区 java栈
java堆是java应用程序最密切的内存空间.几乎所有的对象都存在堆中.java堆完全自动化管理,通过垃圾回收机制,垃圾对象会自动清理,不需要显式释放. 根据java垃圾回收机制的不同,java堆可能 ...
- Java操作符真的简单到易如反掌?
之前我写了一篇<吃人的那些Java名词:对象.引用.堆.栈和堆栈>,本以为凭借自己8年的Java编程经验足够把这些“吃人”的Java名词解释清楚了,但有网友不以为然,在文章底部评论说:“老 ...
- Java的多线程 简单入门
Java的多线程 简单入门 首先能够先搞清楚什么是程序.进程.线程,以及它们之间的关系: 定义: 一 程序仅仅是一组指令的有序集合.它是静态的 二 进程是具有一定独立功能的程序关于某个数据集合上的一次 ...
- Java之OutOfMemoryError简单分析
Java之OutOfMemoryError简单分析 最近编码遇到了Java内存溢出的问题,所以就想顺便总结一下几种导致Java内存溢出的栗子,以及碰到Java内存溢出要如何去解决. Java堆溢出 J ...
- Java 异步处理简单实践
Java 异步处理简单实践 http://www.cnblogs.com/fangfan/p/4047932.html 同步与异步 通常同步意味着一个任务的某个处理过程会对多个线程在用串行化处理,而异 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- Java中的简单工厂模式
举两个例子以快速明白Java中的简单 工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就 ...
随机推荐
- Windows下安装 Memcache
1.下载Memcached Windows服务端程序.(memcached >= 1.4.5 版本安装32 32位系统 1.4.5版本:http://static.runoob.com/down ...
- spring context 继承
<web-app> <display-name>Archetype Created Web Application</display-name> <conte ...
- 百度AI认为最漂亮的中国女星是----范冰冰
一.程序说明 1.1 程序说明 之前写调用百度AI接口的程序,然后刷到了两条明星的新闻,就想到了写个给明星颜值排下名的程序. 程序的关键点是两个,第一个是百度AI接口的调用这点其实直接使用早前实现的类 ...
- was控制台误禁用后的恢复启用办法
websphere是可以配置禁用控制台的,下面以was6.1.单profile.https控制台为例介绍在(误)禁用控制台后如何恢复启用控制台. 1. 禁用控制台 WCInboundAdmin--控制 ...
- npm node sass 安装报错
报错为 不能找到python2.7,记得曾经已经安装过python,结果npm install cnpm install npm install node-sass 各种不行,结果在cmd 输入pyt ...
- Ubuntu安装openssh-server并通过xshell连接
#安装ssh sudo apt-get install openssh-server openssh-client sudo apt-get update sudo apt-get upgrade 查 ...
- linux系统管理 系统进程
进程介绍 '进程' 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源 ps命令基本使用 ps命令用来查看在计算机系统中那些程序正在执行,以及执行的 ...
- re随机模块应用-生成验证码(无图片)
方法一,通过choice方式生成验证码 此方法生成每次调用crate_code()会生成三个随机数,然后再三个随机数中选择一个,资源调用相对多些 import random def v_code(co ...
- bzoj4310
题解: 后缀数组求出本质不同的串 然后二分答案 贪心判断是否可行 代码: #include<bits/stdc++.h> ; using namespace std; typedef lo ...
- day22-python操作mysql2
数据库连接池 python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时, ...