*<p>Date:2003.2.28</p> *<p>Author:TomJava</p> *<p>email:tomjava@sohu.com</p> */ public class kSet {//用单链表实现 private kSetNode head; public kSet() { head=null; } //将kSet清空 public void clear() { head=null; } //向kSet中添加元素 public boolean add(int x,int y) { kSetNode node=new kSetNode(x,y); return add(node); } //向kSet中添加元素 public boolean add(kSetNode node) { if(!contains(node)) { node.next=head; head=node; return true; }else { return false; } } //判断kSet是否为空 public boolean isEmpty() { if(head==null) return true; else return false; } //摘下链表头元素并返回此元素 public kSetNode getFirst() { kSetNode p=head; head=p.next; return p; } //遍历kSet,如果有相同元素返回true,否则返回false public boolean contains(kSetNode node) { kSetNode p = head; while (p != null) { if(p.equals(node))return true; p=p.next; } return false; } } //kSet中的元素 public class kSetNode { public int x,y; public kSetNode next; public kSetNode(int x,int y) { this.x=x; this.y=y; next=null; } public boolean equals(kSetNode node) { if(node.x==x&&node.y==y) return true; else return false; } public int getX() { return x; } public int getY() { return y; } } |