java做栈

来源:百度知道 编辑:UC知道 时间:2024/05/13 18:14:47
class LinkList{
char data;
LinkList front;
LinkList back;
}
interface Access{
void put(char c);
char get();
}
class Stack implements Access{
private LinkList bottom=new LinkList();
private LinkList top=bottom;
public void put(char c){
top.front.data=c;
top.front.back=top;
top=top.front;
}
public char get(){
if(top!=bottom){
char c=top.data;
top.back.front=null;
top=top.back;
return c;
}
else{
System.out.println("空了");
return '\0';
}
}
}
class exam{
public static void main(String pq[]){
char c;
Stack s=new Stack();
s.put('A');
s.put('B');
s.put('C');
c=s.get();
System.out.println(c);
c=s.get();
System.out.println(c);
c=s.get();
System.out.println(c);
}
}
运行提示
Exception in thread "main" java.lang.NullPointe

没有必要这样做吧,因为在容器类中Stack已经很好实现的栈的所有功能了,

你看一下那些数据结构关于链表和栈那一章的就行了,至于详细的说起到很麻烦(由于个人赖的原因)

class LinkList{ //这就是一个数据结点
char data; ----->存数据
LinkList front; ----->链表前一项地址
LinkList back; ----->链表后一项地址
}

其它链表和栈的结构差不多一样的,只是对数据的读取方式不同而已

class LinkList{
char data;
LinkList front;
LinkList back;
}

定义的3个成员,1个是数据,另2个是地址