吾爱乐享
个人学习网站

java之学习用LinkedList模拟栈数据结构的集合并测试

结果示意图

请点击此处输入图片描述

Linkedlist定义:

 LinkedList数据结构是一种双向的链式结构,每一个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素,和数组的顺序存储结构(如:ArrayList)相比,插入和删除比较方便,但修改和查询速度会慢一些。

栈数据结构:

栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。
(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。
(2)当表中没有元素时称为空栈。
(3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表。
栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中”最新”的元素,也就是最先插入的元素最后弹栈,就像弹夹一样

原理:

栈的特点就是先进后出,而linkedlist有两个方法,public void addLast(E e); 向后增加,也就是先进的原则 public E removeLast() 删除第一个元素,也就是后出的原则,利用linkedlist的这两个特有功能就可以模拟栈数据结构

案例源码:


package com.fenxiangbe.list;

import java.util.LinkedList;

public class Demo_Linkedlist3 {

public static void main(String[] args) {

LinkedList<String> l = new LinkedList<>();

//模拟进栈

l.addLast(“a”);

l.addLast(“b”);

l.addLast(“c”);

l.addLast(“d”);

System.out.println(“进栈的顺序是:” + l);

//模拟弹栈

System.out.print(“弹栈的顺序是:”);

while(!l.isEmpty()){

System.out.print(l.removeLast());

}

}

}


以上代码看似是达到模拟栈数据结构先进后出,结果也达到了,但是真正的模拟栈数据结构,就需要创建一个类将Linked中的方法封装

步骤:

  1. 首先创建一个stack的类把linkedlist方法封装起来

  2. 然后创建一个类创建stack类的对象进行模拟

stack类的案例代码:


package com.fenxiangbe.list;

import java.util.LinkedList;

public class Stack {

private LinkedList l = new LinkedList();

//模拟进栈方法

public void in(Object o){

l.addLast(o);

}

//模拟出栈方法

public Object out(){

return l.removeLast();

}

//模拟栈结构是否为空

public boolean isEmpty(){

return l.isEmpty();

}

@Override

public String toString() {

return “” + l + “”;

}

}


Demo_Linkedlist3类的案例代码:


package com.fenxiangbe.list;

public class Demo_Linkedlist3 {

public static void main(String[] args) {

Stack s = new Stack();

s.in(“a”);

s.in(“b”);

s.in(“c”);

s.in(“d”);

System.out.println(“进栈的顺序是:” + s);

System.out.print(“弹栈的顺序是:”);

while(!s.isEmpty()){

System.out.print(s.out());

}

}

}

赞(0) 打赏
未经允许不得转载:吾爱乐享 » java之学习用LinkedList模拟栈数据结构的集合并测试

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏