`

用链表实现栈

 
阅读更多
栈最大的特点就是:先进后出、后进先出,把握这个特点后,我们可以用链表实现栈

/**
 * 链接点类
 * 
 * @author zhang
 *
 */
public class Link {
	public long dData;
	public Link next;

	public Link(long dData) {
		this.dData = dData;
	}

	public void displayLink() {
		System.out.print(dData + " ");
	}
}

 

/**
 * 链表类
 * 
 * @author zhang
 *
 */
public class LinkList {
	private Link first;

	public LinkList() {
		first = null;
	}

	public boolean isEmpty() {
		return first == null;
	}

	public void insertFirst(long dd) {
		Link newLink = new Link(dd);
		newLink.next = first;
		first = newLink;
	}

	public long deleteFirst() {
		Link temp = first;
		first = first.next;
		return temp.dData;
	}

	public void displayList() {
		Link current = first;
		while (current != null) {
			current.displayLink();
			current = current.next;
		}
		System.out.println();
	}
}

 

/**
 * 用链表实现一个栈
 * @author zhang
 *
 */
public class LinkStack {
	private LinkList theList;
	public LinkStack(){
		theList=new LinkList();
	}
	
	public void push(long j){
		theList.insertFirst(j);
	}
	
	public long pop(){
		return theList.deleteFirst();
	}
	
	public boolean isEmpty(){
		return theList.isEmpty();
	}
	
	public void displayStack(){
		System.out.print("Stack(top-->bottom):");
		theList.displayList();
	}
	
}

 

分享到:
评论

相关推荐

    数据结构:图解链表,用链表实现栈的Pop和Push(c语言版)

    ### 数据结构:图解链表,用链表实现栈的Pop和Push(C语言版) #### 前言 在计算机科学中,数据结构是指一组数据的存储结构,而算法则是针对这些数据的操作方法。本篇文章主要讲解如何利用链表这种数据结构来实现...

    数据结构:图解链表,用链表实现栈(c语言版)

    ### 数据结构:图解链表,用链表实现栈(C语言版) #### 一、栈的基本概念 栈(Stack)是一种特殊的线性表,它只允许在一端进行插入或删除操作,通常称这一端为栈顶(Top),另一端为栈底(Bottom)。根据这种特性...

    链表实现栈和队列(经典程序)

    在"delimetermach.cpp"这个源代码文件中,很可能包含了具体的链表实现栈和队列的C++代码。通过阅读和分析这段代码,我们可以深入理解如何使用C++的指针和结构体来构建链表节点,以及如何通过指针操作来实现栈的压栈...

    Dlephi链表实现栈操作_delphi_

    总的来说,利用Delphi中的双向链表实现栈操作提供了一种高效且灵活的方式。通过封装链表的节点操作,我们可以轻松地实现栈的基本功能,同时得益于链表的特性,这种实现方式在处理大量数据时也能保持较好的性能。在...

    用链表实现栈的初始化,插入,删除,等功能

    用C语言实现非循环单链表的创建和遍历等各种功能

    栈关于数组与链表的实现

    通过阅读和理解提供的压缩包文件"stack",我们可以预期其中包含的源代码展示了如何用C语言分别使用数组和链表实现栈的全部功能。这些源码可以作为学习和理解栈实现的实例,帮助我们更好地掌握这两种数据结构在实际...

    用数组和链表实现栈.zip

    - 链表实现栈在动态调整容量和插入删除效率上有优势,但需要额外的指针空间,且访问元素不如数组直接。 在实际应用中,选择哪种方式实现栈取决于具体需求,如数据量大小、空间和时间复杂度的要求等。对于小规模且对...

    C++类实现链表,栈

    在C++中,我们可以通过继承`LinkedList`类来实现栈,或者直接使用`Node`类,但这里我们选择第二种方法,因为栈的操作主要是对链表头部进行操作: ```cpp class Stack { private: Node* top; public: Stack() : ...

    用数组合链表实现栈

    在本主题“用数组合链表实现栈”中,我们将探讨两种常见的栈实现方式,并尝试将它们结合以提供更灵活和高效的解决方案。 首先,让我们来看看数组实现的栈。数组是最基础的数据结构,它可以提供连续的内存空间来存储...

    栈的实现(C语言)数组实现以及链表实现

    栈的实现(C语言)数组实现以及链表实现源码,以及各个功能测试代码函数等 和后缀式转前缀式的用例

    数据结构 栈 链表实现 c++ 模板

    由于C++的链表操作比数组更灵活,它允许在运行时动态调整大小,因此非常适合实现栈这种数据结构。 栈在许多算法和程序设计问题中都有应用,如深度优先搜索、表达式求值、括号匹配等。使用链表和模板实现的栈,不仅...

    链表-使用Python基于链表实现栈数据结构.zip

    通过学习这个主题,你可以更好地理解链表的工作原理,掌握如何在Python中创建链表类,以及如何利用链表实现栈的特性。这将有助于你在解决实际编程问题时选择合适的数据结构,提高代码的效率和可维护性。

    用单向链表实现栈(C++源代码)

    栈是基本的数据结构。其特点是添加和访问数据都在线性表的一端(头端)。数据访问遵循先进后出(FILO)的原则。...本程序用单向链表实现栈。是C++、数据结构及算法学习的一个小小练习。供大家参考。

    链表模拟栈

    在计算机科学中,通常使用数组或动态数组来实现栈,但在某些特定情况下,如内存分配受限或需要高效插入和删除操作时,链表可以成为更合适的选择。 链表由一系列节点组成,每个节点包含数据和指向下一个节点的指针。...

    数据结构中链表,栈和队列,串的算法实现代码

    例如,你可以学习如何用C++实现一个动态数组或链表为基础的栈。 队列是一种先进先出(FIFO)的数据结构,广泛应用于任务调度、打印队列等。Queue.cpp文件中可能会展示队列的创建、入队(enqueue)、出队(dequeue)...

    算法大全-面试题-链表-栈-二叉树-数据结构

    "算法大全-面试题-链表-栈-二叉树-数据结构"这个压缩包文件提供了丰富的知识资源,旨在帮助学习者深入理解和应用这些核心概念。 链表是一种线性数据结构,与数组不同,它的元素在内存中不是连续存储的。链表由一...

    用链表实现线性表java

    总的来说,用链表实现线性表是数据结构与算法学习中的基础内容。通过`ChainList.java`和`ListInterface.java`,我们可以学习如何在Java中构建一个功能完备的链表结构,并了解其在实际应用中的价值。

    链式栈.cpp 使用链表实现的栈类 c++代码

    使用链表实现的栈 包含栈的所有操作 对应于数据机构与算法分析(c++版)第三版或第二版 Clifford A.Shaffer 重庆大学使用教材

    一个用C++编的用链表栈实现的表达式求值

    在这个项目中,我们关注的是用C++编程语言通过链表栈来实现这一功能。链表栈是一种数据结构,它利用链表(linked list)的数据结构特性来模拟栈(stack)的行为,即后进先出(LIFO)的原则。下面将详细解释这个实现...

Global site tag (gtag.js) - Google Analytics