博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表算法面试题---用链表实现队列和栈
阅读量:2490 次
发布时间:2019-05-11

本文共 1728 字,大约阅读时间需要 5 分钟。

队列和栈的概念

队列:先进先出,从头进,从尾出。

栈:先进后出,从头进,从头出。

所以现在要做的就是用链表来实现:从头进,从头出,从尾进,从尾出这4种方法,即可组合出队列和栈的数据结构。

假设以此插入1、2、3、4、5。

1、从头进

在这里插入图片描述

2、从尾进

在这里插入图片描述

3、从头出,假设出2个元素

在这里插入图片描述

4、从尾出,再出两个元素

在这里插入图片描述

代码实现

public class Code_02 {
//双向链表 static class Node
{
public T data; public Node
last; public Node
next; public Node(T data) {
this.data = data; } } //用双向链表分别实现,从头进,从头出,从尾进,从尾出这4种方法 static class DoubleNodeUtil
{
public Node
head; public Node
tail; //从头进 public void addHead(T data) { Node
newNode = new Node
(data); if (head == null) { head = newNode; tail = newNode; } else { newNode.next = head; head.last = newNode; head = newNode; } } //从尾进 public void addTail(T data) { Node
newNode = new Node
(data); if (head == null) { head = newNode; } else { tail.next = newNode; newNode.last = tail; } tail = newNode; } //从头出 public T popHead() { if (head == null) { return null; } Node
h = head; if (head == tail) { head = null; tail = null; } else { head = head.next; head.last = null; } return h.data; } //从尾出 public T popTail() { if (tail == null) { return null; } Node
t = tail; if (head == tail) { head = null; tail = null; } else { tail = tail.last; tail.next = null; } return t.data; } } //栈 public static class MyStack
{ private DoubleNodeUtil
queue; public MyStack() { queue = new DoubleNodeUtil
(); } public void push(T value) { queue.addHead(value); } public T pop() { return queue.popHead(); } } //队列 public static class MyQueue
{ private DoubleNodeUtil
queue; public MyQueue() { queue = new DoubleNodeUtil
(); } public void push(T value) { queue.addHead(value); } public T poll() { return queue.popTail(); } }}

转载地址:http://nllrb.baihongyu.com/

你可能感兴趣的文章
设计模式19_状态
查看>>
设计模式20_观察者
查看>>
vnpy学习10_常见坑02
查看>>
用时三个月,终于把所有的Python库全部整理了!拿去别客气!
查看>>
pd.stats.ols.MovingOLS以及替代
查看>>
vnpy学习11_增加测试评估指标
查看>>
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
海龟交易法则14_掌控心魔
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>
克罗谈投资策略04_感觉与现实
查看>>
通向财务自由之路01_导读
查看>>
通向财务自由之路02_成功的决定因素:你
查看>>
中低频量化交易策略研发01_引言
查看>>