集合_用List实现栈和队列

本文介绍使用Java中的LinkedList类实现栈和队列的基本操作,包括进栈、出栈、返回栈顶元素及队列的入队、出队等功能,并提供完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          1、栈的实现

             1)栈的功能:进栈、出栈、返回栈口元素……

            

            2)详解的过程看代码吧:

      

import java.util.*;

//1借助LinkedList 类中的方法实现栈
public class MyStack {
	private LinkedList<Object> li=new LinkedList<Object>();
	
	//1构造方法
	public MyStack(){
		
	}
	
	//2出栈
	public Object pop(){
		if(isEmpty()){
			throw new EmptyStackException();
		}
		return li.removeFirst();
	}
	
	//3进栈
	public void push(Object obj){ //注意o不要0的区别,不要写成0了
		li.addFirst(obj);
	}
	
	//4清空
	 public void clear() {
	       li.clear();
	    }
	//5判断是否为空
	public boolean isEmpty(){
		return li.isEmpty();
	}
	
	//6 将对象转换成字符串
	public String toString(){
		return li.toString();
	}
	 
	 //7返回栈口元素
	public Object peek(){
		if(isEmpty()){
			throw new EmptyStackException();
		}
		return li.peekFirst();
		
	}
	
	public static void main(String[] args) {
		MyStack stack=new MyStack();
		//进栈
		stack.push("a");
		stack.push("b");
		
		//出栈
		System.out.println(stack.pop());
		
		//返回栈口元素
		System.out.println(stack.peek());
		

	}

}
    

  2、队列的实现:

       1)队列的功能:队尾进,队首出、....

       2)详细的见代码:

import java.util.*;

//借助LinkedList 类中的方法实现队列
public class MyQueue {
	private LinkedList<Object> li = new LinkedList<Object>();

	// 1构造方法
	public MyQueue() {

	}

	// 2出列
	public Object get() {
		if (isEmpty()) {
			throw new EmptyStackException();
		}
		return li.removeFirst();
	}

	// 3进列
	public void put(Object obj) {
		li.addLast(obj);
	}

	// 4清空
	public void clear() {
		li.clear();
	}

	// 5 返回队列首元素(不删除)
	public Object getTop() {
		if (isEmpty()) {
			throw new EmptyStackException();
		}
		return li.peekFirst();
	}

	// 6将对象转换成字符串
	public String toString() {
		return li.toString();
	}

	// 7判断队列是否为空
	public boolean isEmpty() {
		return li.isEmpty();
	}

	public static void main(String[] args) {
		MyQueue mq = new MyQueue();
		// 进列
		mq.put("a");
		mq.put("b");
		mq.put("c");

		// 出列
		System.out.println(mq.get());
		System.out.println(mq.get());

		// 返回对首元素
		System.out.println(mq.getTop());

	}
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">      </span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值