虽然大部分人学习数据结构都用的是C或者C++来实现代码,
最坑爹的就是从今年开始,数据结构考研竟让不让用java语言来实现了,
可能C++在性能上对于java还有那么一点点优势,但是在除了PC游戏外的大型软件应用环境
它甚至都不赔成为java的对手
下面是最简答的栈的实现。
class Stack<T>{
class node{
T item;
node next;
}
public boolean isEmpty(){
return head==null;
}
public void push(T item){//头插法
node oldHead=head;//保存后面连接
head=new node();
head.item=item;//赋值有时间会漏
head.next=oldHead;
}
public T pop(){
T s=head.item;
head=head.next;
System.out.println(s+"---出栈");
return s;
}
}
然后是队列的实现
class Queue{
private node head=null,tail=null;
class node{
T item;
node next;
}
public boolean isEmpty(){
return head==null;
}
public void push(T item){//尾插法
node oldtail=tail;
tail=new node();
tail.item=item;
tail.next=null;
System.out.println(item+"---进队列");
if(isEmpty())
head=tail;
else
oldtail.next=tail;
}
public T pop(){
T s=head.item;
head=head.next;
System.out.println(s+"---出队列");
if(head==null)
return null;
return s;
}
}