算法 第四版 1.3.40 前移编码

来源:互联网 发布:数控圆弧编程举例 编辑:程序博客网 时间:2024/05/16 14:52
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 stubMoveToFront<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());}}

原创粉丝点击