#yyds干货盘点# 单链表实现栈

Posted wx61dbfa0f42bf6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# 单链表实现栈相关的知识,希望对你有一定的参考价值。

栈是一种“后进先出”的数据结构,对栈的插入和删除操作都是在栈头位置进行的,这与在单链表的表头插入和删除元素的原理类似,因此可以用单向链表实现栈。

单链表实现栈的Java代码:

package parking;

import java.util.Stack;

class Node

Object data;
Node next;

public Node(Object data)
this.data = data;




class LinkNode
private Node head;
private int size;

public LinkNode()
this.head = null;
this.size = 0;


// 判断是否为空
public boolean isEmpty()
return size == 0 ? true : false;


// 头插入法
public void addHNode(Node node)
if (head == null)
head = node;
else
node.next = head;
head = node;

size++;


// 输出头结点,不删除
public Object sysHNode()
if (head == null)
return null;

Object obj = head.data;
return obj;


// 输出头结点,并删除
public Object sysHnode()
if (head == null)
return null;

Object obj = head.data;
if (head.next == null)
head = null;
else
head = head.next;

size--;
return obj;


public int getSize()
// TODO Auto-generated method stub
return size;




public class LinkStack

private LinkNode link;

LinkStack()
link = new LinkNode();


// 判断是否为空
public boolean isEmpty()
return link.isEmpty();


// 入栈
private void push(Object obj)
Node node = new Node(obj);
link.addHNode(node);


// 出栈
private Object pop()
return link.sysHnode();


// 出栈,但不删除头结点
private Object peek()
return link.sysHNode();


// 获取栈大小
private int size()
return link.getSize();


public static void main(String[] args)
LinkStack stack = new LinkStack();
int i;
for (i = 0; i < 5; i++)
stack.push(i);

System.out.println("栈的大小:" + stack.size());
System.out.println("栈顶元素:" + stack.peek());
while (!stack.isEmpty())
System.out.print(stack.pop() + "-->");




以上是关于#yyds干货盘点# 单链表实现栈的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 数据结构与算法之双链表

#yyds干货盘点# 面试必刷TOP101:单链表的排序

#yyds干货盘点# 数据结构与算法学习——单链表相关算法

#yyds干货盘点# 数据结构与算法之单链表

#yyds干货盘点#单链表一发入魂

#yyds干货盘点# 面试必刷TOP101:反转链表