package Cap1;
import edu.princeton.cs.introcs.StdOut;
public class MoveToFront<Item> {
/**
* @param args
*/
private Node first;
private int N;
private class Node{
Item item;
Node next;
}
public boolean isEmpty(){
return first == null;
}
public void add(Item item){
Node node = new Node();
node.item = item;
if(first!=null && first.item == item) return;
Node cur = first;
for(;cur!=null && cur.next != null; cur = cur.next){
if(cur.next.item == item){
Node temp = cur.next;
cur.next = cur.next.next;
temp.next = null;
break;
}
}
node.next = first;
first = node;
}
public Item delete(){
Node temp = first;
Item item = first.item;
first = first.next;
temp.next = null;
return item;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MoveToFront<Integer> m = new MoveToFront<Integer>();
for(int i=0;i<10;i++)
m.add(i);
m.add(5);
m.add(8);
while(!m.isEmpty())
StdOut.println(m.delete());
}
}
算法 第四版 1.3.40 前移编码
最新推荐文章于 2022-09-05 15:28:33 发布