`
程序新猿
  • 浏览: 2758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java用链表实现栈和队列

阅读更多

    用链表实现了栈的基本操作:入栈、出栈、查看栈顶数据以及判断栈是否有数据

/**
 * 用链表实现栈
 * @author Administrator
 *
 * @param <E>
 */


public class MyStackLink<E>
{
	//定义一个初始长度为0的数组来缓存数据
		Node head = null;
		int length = 0;//结点个数
		
		
		//将数据压入栈中
		public void push(E e)
		{
			//创建结点
			Node n = new Node(e);
			n.next=head;
			head=n;
			length++;
			
		}
		//查看栈顶的数据
		public E get()
		{
			
//			return head == null?null:head.e;
			return head.e;
		}
		
		//出栈
		public E poll()
		{ 
			if(head==null)
			{
				return null;
			}
			Node n=head;
			head = n.next;
			n.next=null;
			length--;
			return n.e;
		}
		
		//判断栈是否为空
		public boolean isEmpty()
		{
			return length == 0;
		}
		private class Node
		{
			E e;
			Node next;
			public Node(E e)
			{
				this.e = e;
			}
		}
}

     因为代码和功能基本上差不多就在这里一起用链表实现了队列

 

/**
 * 用链表实现队列
 * @author Administrator
 *
 * @param <E>
 */


public class Queue<E>
{

			Node head = null;
			private Node last = null;
			int length = 0;//结点个数
			
			//将数据放入队列中
			public void push(E e)
			{
				//创建结点
				Node n = new Node(e);
				if(head==null)
				{
					head = n;
				}else
				{
					last.next = n;
				}
				last = n;
				length++;
				
			}
			//查看队列的数据
			public E get()
			{
				
				return head == null?null:head.e;
			}
			
			//去队列的首数据
			public E poll()
			{ 
				if(head==null)
				{
					return null;
				}
				Node n=head;
				head = n.next;
				n.next=null;
				length--;
				return n.e;

			}
			
			//判断队列是否为空
			public boolean isEmpty()
			{
				return length == 0;
			}
			private class Node
			{
				E e;
				Node next;
				public Node(E e)
				{
					this.e = e;
				}
			}
}
 

 

 

0
0
分享到:
评论

相关推荐

    java 队列 链表 栈

    本篇文章将详细讲解Java中的队列、链表和栈,这些概念是许多初学者和专业人士都需要掌握的基础知识。 首先,我们来谈谈队列。队列是一种先进先出(First In First Out,简称FIFO)的数据结构,类似于现实生活中的...

    栈和队列源代码

    在计算机科学中,栈和队列是两种基本的数据结构,它们在编程中有着广泛的应用。栈被称为“后进先出”(LIFO, Last In First Out)数据结构,而队列则是“先进先出”(FIFO, First In First Out)数据结构。这两种...

    栈和队列的基本操作实现及其应用实验报告

    1. **熟练掌握栈和队列的基本操作**:在数组和链表两种存储结构上实现栈和队列的基本操作。 2. **应用栈和队列解决实际问题**:通过具体的编程练习,学习如何利用栈和队列来解决简单的实际问题。 #### 实验内容 本...

    用链表实现线性表java

    本篇将深入探讨如何用链表来实现线性表,并通过提供的`ChainList.java`和`ListInterface.java`文件来理解其实现细节。 首先,线性表具有顺序访问的特点,其元素可以通过索引进行访问。链表是一种非连续存储结构,每...

    数据结构中栈和队列思想的停车场管理系统

    栈以顺序结构实现,队列以链表实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:...

    基于JAVA实现的常用数据结构代码,JAVA实现复杂度、动态数组、链表、栈、队列、二叉搜索树等

    本压缩包"基于JAVA实现的常用数据结构代码"包含了多个关键的数据结构实现,包括复杂度分析、动态数组、链表、栈、队列以及二叉搜索树。以下是这些数据结构的详细说明: 1. **复杂度**:在计算机科学中,复杂度分为...

    常用数据结构及其算法的Java实现,包括但不仅限于链表、栈,队列

    常见的队列实现有数组队列和链表队列。Java提供了`java.util.LinkedList`类可以作为队列使用,同时`java.util.Queue`接口定义了队列的操作,如`add()`添加元素,`remove()`移除并返回头元素,`peek()`查看但不移除头...

    java中LinkedList集合类实现栈和队列.doc

    在Java中,除了LinkedList,还可以使用ArrayDeque类来实现栈和队列,ArrayDeque提供了更高效的操作,因为它基于数组而不是链表。 在实际应用中,LinkedList适合于频繁插入和删除的场景,因为这些操作的时间复杂度为...

    Java实现栈和队列面试题

    栈和队列是数据结构中的基础概念,它们在编程中有着广泛的应用,特别是在Java面试中常常被用来测试候选人的算法和...在面试中,候选人可能需要现场编写代码,实现这些功能,因此熟悉这些概念和实现方式是非常必要的。

    数据结构试验2-栈和队列实验报告含源码

    同样,队列可以用数组或链表来实现,主要操作有enqueue(入队)、dequeue(出队)和检查队首元素。在某些特定情况下,还有优先级队列,其中元素按照优先级排序。 实验报告通常包括以下部分: 1. 实验目的:明确...

    数据结构关于栈和队列的实现源代码

    本资源提供了关于栈和队列的源代码实现,这对于理解这两种数据结构的工作原理以及如何在实际编程中应用它们非常有帮助。 首先,我们来深入理解栈和队列的概念: **栈(Stack)**: 栈是一种后进先出(LIFO,Last ...

    常用数据结构及其算法的Java实现,包括但不仅限于链表、栈,队列,树,堆,图等经典数据结构及其他经典基础算法(如排序.zip

    本资源是一个关于Java实现常用数据结构和算法的集合,涵盖了链表、栈、队列、树、堆以及图等核心概念,同时也包含了排序等基础算法。下面将详细解释这些知识点。 1. **链表**:链表是一种线性数据结构,它通过节点...

    数据结构 实验4 栈和队列

    1. 设计和实现栈和队列的类结构,包括构造函数、压入、弹出、入队、出队等方法。 2. 使用栈来实现简单的逆序输出字符串、括号匹配检查等问题。 3. 使用队列来实现简单的打印队列、银行服务模拟等场景。 4. 探讨栈和...

    栈和队列的代码

    在编程中,栈和队列的实现可以使用数组、链表或者更高级的数据结构如二叉堆。例如,使用数组实现栈,我们可以利用数组的索引来表示位置,数组的末尾作为栈顶;对于队列,可以使用双端数组,一端用于入队,另一端用于...

    栈和队列基本操作及练习

    在编程中,许多语言提供了内置的栈和队列数据结构,如Python的`collections.deque`可以作为双端队列,支持栈和队列操作,Java的`java.util.Stack`和`java.util.LinkedList`分别实现了栈和队列。此外,还可以自定义...

    Java数据结构之链表、栈、队列、树的实现方法示例

    "Java数据结构之链表、栈、队列、树的实现方法示例" 在计算机科学中,数据结构是一种组织和存储数据的方式,以便实现高效的数据存取和处理。Java数据结构中常用的数据结构有链表、栈、队列、树等,本文将详细介绍...

    Java版数据结构代码,栈,动态数组,队列,链表,二叉树

    在Java中,LinkedList类就是链表的实现,适用于实现队列和栈等数据结构。 5. **二叉树(Binary Tree)**:二叉树是每个节点最多有两个子节点的数据结构,分为左子节点和右子节点。常见的二叉树类型有二叉搜索树、...

    java零基础自学之栈和队列

    总结,对于Java初学者来说,理解栈和队列的概念、操作和实现方式是学习数据结构的基础。通过熟练掌握这些知识,可以为后续更复杂的数据结构和算法学习打下坚实的基础。在实际编程中,栈常用于函数调用、表达式求值等...

    JAVA利用LinkedList构造栈与队列

    在本篇内容中,我们将探讨如何通过LinkedList实现栈和队列,以及它们在实际编程中的应用。 首先,栈是一种后进先出(LIFO,Last In First Out)的数据结构,常用于表达式求值、函数调用、回溯算法等场景。在...

Global site tag (gtag.js) - Google Analytics