2013.12.28

来源:互联网 发布:怎么在淘宝上卖衣服 编辑:程序博客网 时间:2024/05/19 15:43

* 条件语句中的判断部分,要把判断对象是否为null的表达式 写在 && 的最前面,这样保证 && 后的语句不会访问空引用;

* 突然发现学java好像在游戏里练级…你的代码行数就是经验值~求双倍,三倍,四倍经验!

* 实现了基于链地址法进行冲突处理的哈希表@java/DataStructure/unit11

class Data{private int key;private double data;public Data(int key, double data){this.key=key;this.data=data;}public Data(){key=0;data=0;}public int getKey(){return key;}public void setKey(int newKey){key=newKey;}public double getData(){return data;}public void display(){System.out.print("["+key+", "+data+"] ");}}class Link{private Data data;public Link next;public Link(Data data){this.data=data;next=null;}public Link(){data=null;next=null;}public Data getData(){return data;}public void display(){data.display();}}class LinkList{private Link head;public LinkList(){head=null;}public Link getHead(){return head;}public void insert(Link newLink){if(head==null) head=newLink;else{Link current=head;Link prev=head;while(current!=null && current.getData().getKey()<newLink.getData().getKey()){prev=current;current=current.next;}if(current==head){newLink.next=head;head=newLink;}else{prev.next=newLink;newLink.next=current;}}}public Link delete(int key){if(head==null){System.out.println("Can not Delete: Empty LinkList!");return null;}else{Link current=head;Link prev=current;while(current!=null && current.getData().getKey()!=key){prev=current;current=current.next;}if(current==null){System.out.println("Can not Delete: Not Found!");return null;}else if(current==head){Link temp=head;head=head.next;return temp;}else{prev.next=current.next;return current;}}}public Link find(int key){if(head==null){System.out.println("Can not Find: Empty LinkList!");return null;}else{Link current=head;while(current!=null && current.getData().getKey()!=key){current=current.next;}if(current==null){System.out.println("Can not Find: Not Exist!");return null;}else return current;}}public void display(){if(head==null){System.out.println("Empty List!");return;}Link current=head;int counter=0;while(current!=null){current.display();current=current.next;if(++counter==5){System.out.println();counter=0;}}System.out.println();}}class HashTable{private LinkList [] lArr;private int size;private int current;public HashTable(int max){lArr=new LinkList[max];size=max;current=0;}public void insert(Link newLink){int key=newLink.getData().getKey()%size;if(current==size){System.out.println("Can no Insert: The HashTable is Full!");}if(lArr[key]==null){lArr[key]=new LinkList();current++;}lArr[key].insert(newLink);}public Link delete(int key){int obj=key%size;if(lArr[obj]==null){System.out.println("Can not Delete: Not Exist!");return null;}else return lArr[obj].delete(key);}public Link find(int key){int obj=key%size;if(lArr[obj]==null){System.out.println("Can not Find: Not Exist!");return null;}else return lArr[obj].find(key);}public void display(){for(int i=0; i<size; i++){if(lArr[i]==null || lArr[i].getHead()==null){System.out.println("The "+i+" LinkList is Empty!");continue;}System.out.println("The "+i+" LinkList: ");lArr[i].display();}}}


0 0
原创粉丝点击