用LinkedList方法模拟栈的数据结构

import java.util.LinkedList;

/**
*
* @author Ginfer
* @virsion
* HP
* linkedlist
* HP
* 自定义栈集合
* 栈的数据结构是先进后出,
*/

public class MyStack {
//创建一个成员对象
private LinkedList link;

//添加一个构造方法,并默认new一个LinkedList对象
//当创建MyStack对象的时候其实默认是在底层创建了一个LinkedList对象
public MyStack() {
link=new LinkedList();
}
//调用栈的压栈,其实就是调用了LinkedList的addFirst()方法
public void add(Object obj){
link.addFirst(obj);
}
//调用栈的弹栈,其实就是调用了LinkedList的removeFirst()方法,弹栈以后数据将不存在栈中,所以用remove
public Object get(){
//return link.getFirst();
return link.removeFirst();
}
//需要判断栈中是否为空,所以就调用了LinkedList的isEmpty()方法来判断
public boolean isEmpty(){
return link.isEmpty();
}

}

import java.util.Iterator;
import java.util.LinkedList;
import Test.MyStack;
/**
*
* @author Ginfer
* @virsion
* HP
* Linkedlist
* HP
*
* 使用Linklist模拟栈数据结构的集合,并测试
* 意思是自己定义一个集合类,在这个集合内部可以使用LinkedList模拟
*
*/

public class TestLinklist {

public static void main(String[] args) {

/*
* myStack测试
*/
MyStack ms=new MyStack();
ms.add("asd");
ms.add("qwe");
ms.add("zxc");

while (!ms.isEmpty()){
System.out.println(ms.get());
}

}

}

时间: 2024-08-03 08:14:55

用LinkedList方法模拟栈的数据结构的相关文章

采用LinkedList来模拟栈数据结构的集合--先进后出

三.用LinkedList来模拟栈数据结构的集合 /* * 自定义一个数据结构为LinkedList的集合类*/public class MyCollection_LinkedList { public LinkedList linkedList;            public MyCollection_LinkedList() {             //在构造方法里初始化             linkedList= new LinkedList();             }

java 16 - 5 LinkedList模拟栈数据结构的集合

请用LinkedList模拟栈数据结构的集合,并测试 题目的意思是: 你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟. 1 package cn_LinkedList; 2 3 import java.util.LinkedList; 4 5 6 7 8 public class MyStack { 9 10 //定义一个LinkedList类的成员变量 11 private LinkedList list = null; 12 13 /** 14 * 构造方法 15

集合框架(用LinkedList模拟栈数据结构的集合并测试案例)

package cn.itcast_05; import java.util.LinkedList; /** * 自定义的栈集合 * * @author 风清扬 * @version V1.0 */ public class MyStack { private LinkedList link;//定义成员变量 public MyStack() { link = new LinkedList(); } public void add(Object obj) { link.addFirst(obj)

7 两个栈模拟队列,两个队列模拟栈

利用两个栈模拟队列 stack1,stack2 首先向stack1当中放入数据,如果需要输出数据,从stack2中delete数据,如果stack2为空,就把stack1中数据导入stack2 <span style="font-size:14px;">#include "static.h" #include <iostream> #include <stack> template<typename T> class

包含min方法的栈

题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(1<=n<=1000000), n代表将要输入的操作的步骤数. 接下来有n行,每行开始有一个字母Ci. Ci='s'时,接下有一个数字k,代表将k压入栈. Ci='o'时,弹出栈顶元素. 输出: 对应每个测试案例中的每个操作, 若栈不为空,输出相应的栈中最小元素.否则,输出NULL. 样例输入: 7 s 3 s 4

使用golang的slice来模拟栈

slice(切片):底层数据结构是数组 stack(栈):一种先进后出的数据结构 普通版的模拟写入和读取的栈 package main import "fmt" //栈的特点是先进后出 //使用一个切片的全局变量来模拟栈 var stack []int //向栈中添加数据 func push(value int) { stack = append(stack, value) } //从栈中获取数据 func pop() (int, bool) { ok := false value :

剑指offer20:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

1 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 2. 思路和方法 利用辅助栈来存储现有栈的最小值.在入栈和出栈的时候将现有栈和最小值栈进行比较.入栈时,若新值比最小值栈的栈顶还小,则将该值同时push到最小值栈:出栈时,若现有栈的栈顶和最小值栈栈顶一致,则同时出栈,否则,仅仅现有栈pop:通过这一操作,最小值栈的栈顶将永远是现有栈元素中的最下值. 3 C++核心代码 1 class Solution { 2 public: 3

Hdu 3887树状数组+模拟栈

题目链接 Counting Offspring Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1757    Accepted Submission(s): 582 Problem Description You are given a tree, it’s root is p, and the node is numbered fr

用数组模拟栈的结构

package datastruct; import java.util.Arrays; /** * 用数组模拟栈的结构:后进先出(LIFO) 线性表结构 * @author stone * 2014-07-29 06:34:49 */ public class SimulateStack<E> { public static void main(String[] args) { SimulateStack<String> ss = new SimulateStack<Str