使用链表进行模拟栈比用数组好用,考虑的要素也少还方便。

链表结构

private class Node{//链表结构Item item;Node next;}

迭代器

private class Iterator implements java.util.Iterator<Item>{//迭代器private Node p=first;@Overridepublic boolean hasNext() {return p!=null;}@Overridepublic Item next() {Item item=p.item;p=p.next;return item;}@Overridepublic void remove() {}}

完整源代码

 static class stack<Item>{private Node first;private int N;private class Node{//链表结构Item item;Node next;}private int size(){return N;}private boolean isEmpty(){return first==null;}private void push(Item item){//入栈Node oldfirest=first;first=new Node();first.item=item;first.next=oldfirest;N++;}private Item pop(){//出栈Item item=first.item;first=first.next;N--;return item;}private Iterator iterator(){return new Iterator();}private class Iterator implements java.util.Iterator<Item>{//迭代器private Node p=first;@Overridepublic boolean hasNext() {return p!=null;}@Overridepublic Item next() {Item item=p.item;p=p.next;return item;}@Overridepublic void remove() {}}}

简单的使用

static public void main(String[] args) {stack<String> stack = new stack<String>();System.out.println("入栈中... ...");stack.push("hello world!");stack.push("hello Java!");stack.push("hello stack");System.out.println("--------出栈---------");String pop = stack.pop();System.out.println(pop);System.out.println("--------迭代--------");ListStack.stack<String>.Iterator iterator = stack.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}

复习----使用链表实现栈(后进先出)及迭代相关推荐

  1. 复习----使用链表实现队列(先进先出)及迭代

    实现队列比实现栈的会多一点复杂,需要两个标记,first表示队头,last表示队尾. 链表结构 private class Node{Item item;Node next;} 迭代器 与实现栈的迭代 ...

  2. python链表实现栈_使用python实现数组、链表、队列、栈

    引言 什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中. 比如:列表,集合和字 ...

  3. 《Algorithms》—— 链表实现栈,队列,背包

    链表 链表的定义 链表实现栈 链表实现队列 链表实现背包 链表的定义 链表是一种递归的数据结构,它或者为空(null),或者是指向一个节点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链 ...

  4. 简述顺序表、链表、栈和队列以及队列实现栈、栈实现队列

    简述顺序表.链表.栈和队列以及队列实现栈.栈实现队列 顺序表Vector 原理 使用方法 优点和缺点 链表List 原理 使用方法 优点和缺点 栈Stack 定义和特点 使用方法 队列 定义和特点 使 ...

  5. 保存数组_面试官:讲一讲你对据结构——数组、链表、栈、队列的理解

    一.解释定义 1. 数据结构: 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.再简单描述一下:数据结构就是描述对象间逻辑关系的学科. 如果还是不太清楚下面会举例说明的. 2. 数据存储结 ...

  6. java中队列链表栈的作用_Java用链表实现栈和队列

    1.用链表实现栈 package stack; /** * * @author denghb * */ class Link { public long dData; public Link next ...

  7. (数据结构与算法)数组和单链表实现栈的基本操作

    数组实现栈 栈接口 public interface Stack<E> {int getSize();boolean isEmpty();void push(E e);E pop();E ...

  8. Java实现自定义队列和树结构_Java数据结构之链表、栈、队列、树的实现方法示例...

    本文实例讲述了java数据结构之链表.栈.队列.树的实现方法.分享给大家供大家参考,具体如下: 最近无意中翻到一本书,闲来无事写几行代码,实现几种常用的数据结构,以备后查. 一.线性表(链表) 1.节 ...

  9. 剑指offer之用链表实现栈(带头节点)

    1 问题 用链表实现栈,栈先进后出. 2 代码实现 #include <stdio.h> #include <stdlib.h>#define true 1 #define f ...

最新文章

  1. mysql将字符转换成数字
  2. php中的网络接口,php中的接口interface
  3. WINCE串口WriteFile阻塞问题解决方法
  4. 你若安好,便是晴天。
  5. windows 7(32/64位)GHO安装指南(序篇)~
  6. GC对吞吐量和延迟的影响
  7. potplayer 多个进程_进程组、会话、控制终端概念,如何创建守护进程?
  8. pandas 下的 one hot encoder 及 pd.get_dummies() 与 sklearn.preprocessing 下的 OneHotEncoder 的区别
  9. 为什么像王者荣耀这样的游戏Server不愿意使用微服务?
  10. Arduino用作usb转ttl串口调试工具
  11. 硬盘数据恢复方法 固态硬盘数据恢复方法
  12. Visual Studio2019配置备忘
  13. 基于微信 xlog 开源 日志框架
  14. Introduction to TurboFan
  15. 安装oracle 19c rac报错:2节点执行root.sh asm实例启动失败
  16. excel高效之删除空行
  17. uoni扫地机器人好用吗_扫地机器人好用吗?扫盲选购看这篇
  18. js中的关键字和保留字
  19. 你所不知道的 Python 冷知识!(建议收藏)
  20. Mybatis Plus重写批量新增和批量删除

热门文章

  1. [译]Kube Router Documentation
  2. WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形
  3. 【转载】浏览器缓存详解:expires cache-control last-modified
  4. JavaScript基础之Number对象和Math对象
  5. 02、django中的上下文
  6. C#实现Singleton (转载)
  7. Spring IOC容器组件注入的几种方式
  8. 超越培训班同学的独门绝技
  9. idea中Error:java: Compilation failed: internal java compiler error
  10. arduino 上传项目出错_Arduino多核编程:简单例子