链栈(java实现)
来源:互联网 发布:js typeof() 编辑:程序博客网 时间:2024/05/19 11:49
package com.fcy.dataStruct;public class LinkStack<T> {private class Node{//保存结点数据private T data;//指向下一个结点的引用 private Node next;public Node(T data,Node next){this.data=data;this.next=next;}}//栈顶元素private Node top;//链栈中的结点数private int size;public LinkStack(){top=null;}public LinkStack(T element){top =new Node(element,null);size++;}//返回链栈长度public int length(){return size;}//进栈public void push(T element){top=new Node(element,top);size++;}//出栈public T pop(){Node oldTop=top;top=top.next;//释放栈顶元素的next引用oldTop.next=null;size--;return oldTop.data;}//访问栈顶元素,但不删除栈顶元素public T peek(){return top.data;}//判断链栈是否为空栈public boolean empty(){return size==0;}//清空链栈public void clear(){//将底层数组的所有元素赋为nulltop =null;size=0;}public String toString(){//链栈为空链栈时if(empty()){return "[]";}else{StringBuilder sb=new StringBuilder("[");for(Node current=top;current!=null; current=current.next){sb.append(current.data.toString()+",");}int len=sb.length();return sb.delete(len-1, len).append("]").toString();}}}
测试类:
package com.fcy.dataStruct;public class LinkStackTest {public static void main(String[] args) {LinkStack<String> stack=new LinkStack<String>();stack.push("aaaa");stack.push("bbbb");stack.push("cccc");stack.push("dddd");System.out.println(stack);System.out.println("访问栈顶元素:"+stack.peek());System.out.println("第一次弹出栈顶元素:"+stack.pop());System.out.println("第二次弹出栈顶元素:"+stack.pop());System.out.println("两次pop后的栈:"+stack);}}
运行结果:
0 0
- 链栈(java实现)
- 数据结构 -- 链栈java实现
- 基数排序(java实现)
- 双基快排(Java实现)
- 基数排序(java实现)
- 哈夫曼树(java实现)
- 万年历(java实现)
- 文件上传实现(java实现)
- 分页实现(二) java实现
- 数据库连接池实现(JAVA SE)实现
- Java实现堆栈(list实现)
- java实现线性表(数组实现)
- JAVA 实现栈 (这次是用链表实现)
- 递归实现逆转数组(Java实现)
- 多线程实现死锁(Java实现)
- 栈的Java实现--链栈
- JAVA实现Python requests模块(JAVA实现Http请求)
- java 缩略图实现(转)
- uva 10400(dfs)
- VS添加Ajax
- Java的servlet生成动态验证码
- 理解python的staticmethod与classmethod实现
- win8.1IIS部署
- 链栈(java实现)
- win8.1网站发布
- Android ORMLite 框架的入门用法
- 项目OA之实体类的设计
- ASP.NET真假分页—假分页
- ASP.NET真假分页—真分页
- 从NDK在非Root手机上的调试原理探讨Android的安全机制
- ZOJ 3811 Untrusted Patrol 并查集
- abstract class & interface