前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java之学习用LinkedList模拟栈数据结构的集合并测试

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

作者头像
吾爱乐享
发布2018-07-12 17:49:07
6730
发布2018-07-12 17:49:07
举报
文章被收录于专栏:吾爱乐享吾爱乐享

结果示意图

请点击此处输入图片描述

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());

}

}

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linkedlist定义:
  • 栈数据结构:
  • 原理:
  • 案例源码:
  • 步骤:
  • stack类的案例代码:
  • Demo_Linkedlist3类的案例代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档