博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构——用链表实现栈
阅读量:6226 次
发布时间:2019-06-21

本文共 2677 字,大约阅读时间需要 8 分钟。

//=================================================// 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_demopublic 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();	}}

 

转载地址:http://rcnna.baihongyu.com/

你可能感兴趣的文章
本周总结
查看>>
苹果企业账号申请
查看>>
Problem O
查看>>
胜利大逃亡
查看>>
畅通工程(并查集找根节点)
查看>>
【工具使用】sublime text3
查看>>
SQL Server查询优化器的工作原理
查看>>
关于成长的一点碎碎念
查看>>
java生成指定范围的随机数
查看>>
Easy ui Datagrid(下拉、复选、只输入数字、文本) 追加、删除、更改
查看>>
20145209刘一阳 《网络对抗》逆向及BOF基础实践
查看>>
Groovy's dynamic mixin
查看>>
2018.10.27-dtoj-3996-Lesson5!(johnny)
查看>>
LCLFramework框架之数据门户
查看>>
python基础-----集合(在我的世界你是唯一)
查看>>
【转】Closeable, Readable, Flushable, Appendable
查看>>
css
查看>>
Java 语言中 Enum 类型的使用介绍
查看>>
Git and Subversion
查看>>
用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话
查看>>