//=================================================
// File Name : LinkStack_demo
//------------------------------------------------------------------------------
// Author : Common //类名:Link_long
//属性:
//方法:
class Link_long{ //链节点类
public long dData;
public Link_long next; //链表中下一个节点的引用 public Link_long(long dData) {
super();
this.dData = dData;
} public void displayLink(){ //显示当前节点的值
System.out.println("dData"+dData);
} } //类名:LinkList_long
//属性:
//方法:
class LinkList_long{
private Link_long first; //只需要第一个节点,从第一个节点出发即可定位所有节点 public LinkList_long() { //构造函数
this.first = null;
} public boolean isEmpty(){
return (first == null);
} public void insertFirst(long dd){ //插入元素是从链表的头开始插入
Link_long newLink = new Link_long(dd);
newLink.next = first;
first = newLink;
} public long deleteFirst(){ //删除temp.dData
Link_long temp = first; //暂存first
first = first.next; //把next设为first
return temp.dData; //返回原来的first
} public void displayList(){
System.out.println("List(first-->last):");
Link_long current = first; //用于不断改变位置实现遍历
while(current != null){
current.displayLink();
current = current.next;
}
} public Link_long find(int key){ //查找指定的关键字
Link_long current = first;
while(current.dData != key){
if(current.next == null)
return null;
else
current = current.next;
}
return current;
} public Link_long delete(int key){ //如果current的值匹配,则删除
Link_long current = first;
Link_long previous = first;
//没有匹配到值
while(current.dData != key){
if(current.next == null)
return null;
else{ //pre和cur向后移动
previous = current;
current = current.next;
}
}
//匹配到值
if(current == first) //只有一个first,并匹配,则把first设成first.next
first = first.next;
else //current的值匹配,则删除,并把cur的next赋给pre的next
previous.next = current.next;
return current;
}
} //类名:LinkList_long
//属性:
//方法:
class LinkStack{ //用链表实现栈,链表从First开始插入,新的元素将变成First,先删除后来元素 private LinkList_long theList; public LinkStack() { //构造函数
theList = new LinkList_long();
} public void push(long j){ //入栈,即在链表的First插入元素
theList.insertFirst(j);
} public long pop(){ //出栈,即删除链表的First元素
return theList.deleteFirst();
} public boolean isEmpty(){ //判断栈是否为空,即判断链表是否为空
return (theList.isEmpty());
} public void displayStack(){
System.out.println("Stack(top-->bottom):");
theList.displayList();
} } //主类
//Function : LinkStack_demo
public class LinkStack_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
LinkStack theStack = new LinkStack();
theStack.push(10);
theStack.push(20);
theStack.push(30);
theStack.displayStack(); theStack.pop();
theStack.pop();
theStack.displayStack();
} }

最新文章

  1. 多线程 异步 beginInvoke EndInvoke 使用
  2. EF架构~在global.asax里写了一个异常跳转,不错!
  3. C语言 生成随机数
  4. c# 访问ftp
  5. iOS 框架收集
  6. xml基础学习笔记04
  7. XSS 攻击在它的面前都弱爆了!
  8. c#简单的Json解析类
  9. (一)Eclipse 快捷键
  10. PHP常用魔术方法(__call魔术方法:)
  11. 数据库——SQLite---->Java篇
  12. python3之socket&socketserver网络编程
  13. 导出python的环境
  14. Python快速学习07:文本文件的操作
  15. vux安装中遇到的坑(转)
  16. 在jenkins中调用maven的变量
  17. day 35 关于线程
  18. [UE4]自定义函数,快速增加输入参数的一种方法
  19. torchvision 批量可视化图片
  20. 第三百五十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy信号详解

热门文章

  1. Zepto tap 穿透bug
  2. CSS 高级技巧汇总
  3. div模拟实现select下拉框
  4. SQLite常用网址
  5. 用java发送邮件(黄海已测试通过)
  6. java RuntimeException
  7. (转载)提高mysql插入数据的速度
  8. CSS,点击去除虚线边框代码
  9. Eclipse生成jsp 如何将GB18030 改成默认UTF-8
  10. cocos2d-x-2.2.6创建工程
  11. PAT乙1002
  12. Vue项目环境搭建(node+webpack)
  13. LoRa无线技术介绍
  14. 【转】具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能
  15. Java常考面试题(一)
  16. [cnBeta]阿里云推出全栈IPv6解决方案 加速推进下一代互联网应用
  17. sqlserver创建同义词
  18. 创建C3P0数据源
  19. oracle中bulk collect into用法
  20. .NET控件名称缩写一览表