`
sunxboy
  • 浏览: 2869914 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

链表之堆栈的实现

阅读更多
java 代码
 
  1. /** 
  2.  *  
  3.  */  
  4. package link;  
  5.   
  6. /** 
  7.  * @author sunxboy 
  8.  * 
  9.  */  
  10. public class Node {  
  11.   
  12.     /** 
  13.      * 链表结构的特征: 
  14.      * 分二部分: 
  15.      * 第一部分为数据 
  16.      * 第二部分为地址,它指下一个节点 
  17.      */  
  18.     public int data;  
  19.     public Node next;  
  20.       
  21.     public Node(int data) {  
  22.         this.data=data;  
  23.     }  
  24. }  

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

java 代码
 
  1. /** 
  2.  *  这是一个栈,栈有如下特点: 
  3.  *  先进后出 
  4.  *  每新添加(push)一个元素,从头部加入 
  5.  *  每取出(pop)一个元素,从头部取出 
  6.  */  
  7. package link;  
  8.   
  9. /** 
  10.  * @author sunxboy
  11.  * 
  12.  */  
  13. public class Stack {  
  14.   
  15.     private Node head;  
  16.       
  17.     /** 
  18.      * 往栈中加入新数据,从头部加入 
  19.      * @param data 要加入的数据 
  20.      * @return 是否添加成功 
  21.      */  
  22.     public boolean push(int data) {  
  23.         Node node = new Node(data);  
  24.         if(head==null) {  
  25.             head = node;  
  26.             return true;  
  27.         }  
  28.         // 在头的前面加一个元素  
  29.         node.next = head;  
  30.         // 更新头  
  31.         head = node;  
  32.         return true;  
  33.     }  
  34.       
  35.     /** 
  36.      * 从栈中取出数据,从头部取出  
  37.      * @param data 要取出的数据s 
  38.      * @return 头部节点的数据 
  39.      */  
  40.     public int pop() {  
  41.         int data = head.data;  
  42.         head = head.next;  
  43.         return data;  
  44.     }  
  45.       
  46.     public static void main(String[] args) {  
  47.         Stack stack=new Stack();  
  48.         stack.push(1);  
  49.         stack.push(2);  
  50.         stack.push(3);  
  51.         stack.push(4);  
  52.         stack.push(5);  
  53.         stack.push(6);  
  54.         while(stack.head!=null)  
  55.         {  
  56.             System.out.println(stack.pop());  
  57.         }  
  58.     }  
  59. }  
分享到:
评论

相关推荐

    C语言链表及堆栈的实现全收录

    C语言链表及堆栈的实现全收录 初学者参考

    用链表实现堆栈

    ### 用链表实现堆栈 #### 知识点概览 1. **堆栈(Stack)的概念与特性** 2. **链表(Linked List)的结构与操作** 3. **链表实现堆栈的基本原理** 4. **关键函数:`push_back`, `pop_back`, `back` 的实现细节** 5...

    c语言数组与链表转化-分别用数组和链表实现堆栈(C语言版)(转) 数组和链表.pdf

    "c语言数组与链表转化-分别用数组和链表实现堆栈(C语言版)" 本资源主要讲解了使用C语言实现堆栈的两种方法:使用数组和链表。堆栈是一种常用的数据结构,它可以用来实现递归算法、表达式求值、语法分析等。 第一...

    VC下链表堆栈简易实现源码

    在本文中,我们将深入探讨如何在Visual C++(VC)环境下使用C++语言实现链表和堆栈的数据结构。这两个概念是计算机科学基础中的重要组成部分,对于任何编程初学者来说,理解和掌握它们都是至关重要的。 首先,让...

    链表_堆栈_队列源代码

    链表、堆栈和队列是计算机科学中最基础的数据结构,它们在算法设计和程序实现中扮演着重要的角色。下面将分别详细介绍这三个概念及其在C语言中的实现。 **链表**: 链表是一种动态数据结构,它不像数组那样在内存中...

    创建链表模拟堆栈的c语言源程序

    在计算机科学中,堆栈是一种数据结构,它遵循“后进先出”(LIFO)的原则。使用链表来模拟堆栈是一种常见的实现方式,特别是在C语言编程中...通过这样的链表堆栈,我们可以实现各种需要堆栈功能的算法和数据处理任务。

    最全的链表、堆栈和队列

    链表、堆栈和队列是计算机科学中最基础的数据结构之一,它们在程序设计和算法实现中发挥着至关重要的作用。下面将详细讲解这些概念及其C语言实现。 首先,链表是一种动态数据结构,它不像数组那样需要预先分配连续...

    数组、链表、堆栈和队列、线性表和顺序表 数组和链表.pdf

    堆栈实现了一种后进先出的语义(LIFO)。可以使用数组或者是链表来实现它。对于堆栈中的数据的所有操作都是在栈的顶部完成的,只可以查看栈顶部的数据,只能够向栈的顶部压入数据,也只能从栈的顶部弹出数据。 队列...

    嵌入式数据结构链表队列堆栈

    嵌入式常用数据结构-链表、队列、堆栈、可删除key值链表、优先级队列,消息队列

    后缀式转前缀式,采用链表+堆栈方法

    使用链表和堆栈,通过将结构体指针作为堆栈数据,简单明了的实现后缀式转前缀式

    C# 链表 堆栈 队列

    本文将深入探讨C#中的链表、堆栈和队列这三种基本数据结构及其实现方式。 首先,我们来看链表。链表是一种线性数据结构,与数组不同,它的元素并不在内存中连续存储。每个链表节点包含两部分:数据和指向下一个节点...

    数据结构课程作业 单链表 双链表 线性表 堆栈 等课程编程作业

    在本课程作业中,我们重点关注了几种基本的数据结构:单链表、双链表、线性表和堆栈,同时也涉及到二叉树。这些概念在解决实际问题,特别是优化算法效率时起着关键作用。 首先,单链表是一种线性数据结构,其中每个...

    常用算法链表堆栈二叉树.docx

    链表的实现还需要考虑边界情况,如链表为空时的处理。 3. 链表的反转 链表的反转是指将链表中的结点的顺序颠倒过来。反转链表可以使用一个临时变量来存储当前结点的下一个结点,然后将当前结点的下一个结点改为前...

    堆栈链表与队列链表的基本操作

    在C语言中,堆栈可以通过链表来实现,即堆栈链表。堆栈链表的基本操作包括: 1. **初始化**:创建一个空的堆栈,通常设置一个头结点,其next指针为空。 2. **压栈(Push)**:将新元素添加到堆栈顶部。这涉及到修改...

    链表实现堆栈(头文件)

    这个头文件里面定义了一个栈的头文件,包括入栈、退栈、访问栈底栈顶、输出栈等成员函数

    Java script实现堆栈和链表

    #### 二、堆栈实现 接下来介绍如何在JavaScript中实现堆栈。 ```javascript function Entry(next, data) { this.next = next; this.data = data; } function MyStack() { // 头结点,相当于顶端指针 this.head...

    矩阵链表堆栈_C++课程设计_源代码_亲测可用.zip

    《矩阵链表堆栈在C++中的实现及应用》 矩阵链表堆栈是一种结合了矩阵运算、链表数据结构和堆栈操作的数据结构,在计算机科学尤其是算法设计中有着广泛的应用。本课程设计以C++语言为编程工具,旨在深入理解和掌握...

    数据结构程序(堆栈,链表,树,图)

    例如,使用堆栈解决递归问题,利用链表实现动态内存管理,通过二叉树进行快速查找,利用图来模拟复杂的关联关系等。学习和实践这些数据结构程序,不仅可以提升编程能力,也有助于更好地理解和应用计算机科学的基础...

    严蔚敏-数据结构--链表实现c++实现

    6. **链表应用**:链表常用于实现堆栈、队列、哈希表、图和树等数据结构,以及在各种算法中,如快速排序、归并排序、LRU缓存淘汰策略等。 总的来说,《严蔚敏-数据结构》中的链表实现章节会详细讲解这些概念,并...

Global site tag (gtag.js) - Google Analytics