数据结构——链式栈
来源:互联网 发布:linux下的sleep函数 编辑:程序博客网 时间:2024/06/06 05:36
本篇文章主要是用做代码分享。代码,注释都写得很清楚,不清楚的可以问我,如果有些不对的地方也可以提出来,以便我及时改正。
接口类
public interface ILinkStack<E> { boolean isEmpty(); //判空 boolean isFull(); //判满 boolean push(E element); //入栈 E pop(); //出栈 E peek(); //查看栈顶元素,不改变栈顶指针}
结点类
//结点类public class Node<E> { private E data; //数据域 private Node<E> next; //指针域,或地址域 public Node(E data, Node<E> next) { super(); this.data = data; this.next = next; } public Node(E data) { super(); this.data = data; } public Node() { super(); } public E getData() { return data; } public void setData(E data) { this.data = data; } public Node<E> getNext() { return next; } public void setNext(Node<E> next) { this.next = next; }}
链栈类
// 链式栈(使用泛型)public class LinkStack<E> implements ILinkStack<E>{ private Node<E> top; //栈顶指针 public LinkStack(Node<E> top) { //构造链栈,初始为空 super(); this.top = null; } public LinkStack() { super(); } @Override public boolean isEmpty() { // 判空 return top == null; } @Override public boolean isFull() { // 判满 return false; } @Override public boolean push(E element) { // 入栈 if(element == null) return false; top = new Node<E>(element,top); return true; } @Override public E pop() { // 出栈 if(!isEmpty()){ E temp = top.getData(); //取得栈顶元素值 top = top.getNext(); //出栈,指针后移 return temp; }else return null; } @Override public E peek() { // 查看栈顶元素,不改变栈顶指针 if(!isEmpty()) return top.getData(); else return null; }}
测试类
import java.util.*;//十进制转换为二进制public class TestLinkStack01 { public static void main(String[] args) { LinkStack<Integer> stack = new LinkStack<Integer>(); Scanner input = new Scanner(System.in); System.out.println("输入一个十进制的数:"); int num = input.nextInt(); while(num != 0){ stack.push(num % 2); num /= 2; } System.out.print("二进制数是:"); while(!stack.isEmpty()) System.out.print(stack.pop()); }}
阅读全文
0 0
- 数据结构——链式栈
- 数据结构——链式栈
- 数据结构——链式栈(c++)
- 数据结构——栈之链式存储
- 数据结构小结——链式栈
- 数据结构——链式基数排序
- 数据结构——链式队列
- 数据结构—链表-链式存储
- 数据结构(五)——双链表、链式栈、链式队列 及实现
- 数据结构(三)——双链表、链式栈、链式队列 及实现
- C++ —— 数据结构之 顺序栈,链式栈?
- 数据结构之线性表——栈的链式存储
- 第六篇:基本数据结构——栈的链式表示
- 数据结构——链式栈模板类实现
- 数据结构——链式二叉树
- 数据结构——串的链式存储
- 数据结构——链式队列(c++)
- 数据结构——队列之链式存储
- 文章标题
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- 分金子[2017年360春招笔试编程题]
- dependency和dependencyManagement
- PAT 1014. Waiting in Line (30)
- 数据结构——链式栈
- java面试题之------多线程
- CST时间格式化出现误差问题
- JS 中关于this 执行环境的问题_part3
- Scala伴生类和伴生对象
- VGGNet 内存占用分析
- iPhone苹果手机如何设置使用非系统自带铃声
- PHP RabbitMQ 实践第三部
- canOpenURL: failed for URL: "xx"