工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1294|回复: 2

[原创]数据结构学习笔记之二:栈

[复制链接]
发表于 2005-12-11 22:55 | 显示全部楼层 |阅读模式
节点类:


  1. package stack;


  2. public class Node {

  3.         Object element;
  4.         Node next;
  5.        
  6.         Node(Object o)
  7.         {
  8.                 this(o,null);
  9.         }
  10.        
  11.         Node(Object o,Node n)
  12.         {
  13.                 element=o;
  14.                 next=n;
  15.         }
  16. }
复制代码


栈类:


  1. package stack;


  2. public class Stack {

  3.         private Node topNode;
  4.         Stack()
  5.         {
  6.                 topNode=null;
  7.         }
  8.        
  9.         /**
  10.          * 检查栈是否满。非数组表示的栈,永远不会满
  11.          * @return
  12.          */
  13.         public boolean isFull()
  14.         {
  15.                 return false;
  16.         }
  17.        
  18.         /**
  19.          * 检查栈是否为空
  20.          * @return
  21.          */
  22.         public boolean isEmpty()
  23.         {
  24.                 return topNode==null;
  25.         }
  26.        
  27.         /**
  28.          * 清空栈
  29.          *
  30.          */
  31.         public void makeEmpty()
  32.         {
  33.                 topNode=null;
  34.         }
  35.        
  36.         /**
  37.          * 压入栈
  38.          * @param n 目标节点
  39.          */
  40.         public void push(Node n)
  41.         {
  42.                 n.next=topNode;
  43.                 topNode=n;
  44.         }
  45.        
  46.         /**
  47.          * 压入栈
  48.          * @param o 目标对象
  49.          */
  50.         public void push(Object o)
  51.         {
  52.                 push(new Node(o));
  53.         }
  54.        
  55.         /**
  56.          * 获取栈顶节点
  57.          * @return
  58.          */
  59.         public Node top()
  60.         {
  61.                 return topNode;
  62.         }
  63.        
  64.         /**
  65.          * 获取栈顶对象
  66.          * @return
  67.          */
  68.         public Object topObject()
  69.         {
  70.                 return topNode.element;
  71.         }
  72.        
  73.         /**
  74.          * 删除栈顶
  75.          *
  76.          */
  77.         public void pop()
  78.         {
  79.                 topNode=topNode.next;
  80.         }
  81.        
  82.         /**
  83.          * 获取栈顶并删除栈顶
  84.          * @return
  85.          */
  86.         public Node topAndPop()
  87.         {
  88.                 Node tempNode=topNode;
  89.                 pop();
  90.                 return tempNode;
  91.         }
  92. }
复制代码


测试类:


  1. package stack;


  2. public class Test {

  3.         public static void main(String[] args) {
  4.                 Stack stack = new Stack();
  5.                 String a[]={"abc","222","333","444"};
  6.                
  7.                 for(int i=0;i<a.length;i++)
  8.                         stack.push(a[i]);
  9.                
  10.                 /*遍历栈*/
  11.                 while(!stack.isEmpty())
  12.                 {
  13.                         System.out.println(stack.topObject().toString());
  14.                         stack.pop();
  15.                 }
  16.         }
  17. }

复制代码

[ Last edited by wool王 on 2005-12-11 at 15:08 ]
 楼主| 发表于 2005-12-11 23:08 | 显示全部楼层
测试运行结果:

444
333
222
abc
回复

使用道具 举报

发表于 2005-12-12 16:39 | 显示全部楼层
用户名: hjack [退出登录]
作者: wool王
评分: 积分 12 点
标题: [原创]数据结构学习笔记之二:栈


不错,加个分给你.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-30 11:27

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表