標籤:資料結構 java java資料結構 鏈表 資料
public class Link {public int iData;public double dData;public Link next;public Link(int iData, double dData) {super();this.iData = iData;this.dData = dData;}public void displayLink(){System.out.print("{"+iData+","+dData +"}");}}
public class LinkList {private Link first;public void LinkList() {first =null;}//鏈表是否為空白public boolean isEmpty(){return (first ==null);}//插入first頭元素public void insertFirst(int id,double dd) {Link newLink =new Link(id, dd);newLink.next =first;first =newLink;}//刪除鏈表頭元素public Link deleteFirst(){Link tempLink =first;first =first.next;return tempLink;}//找到特定節點public Link find(int key){Link current =first;while (current.iData !=key) {if(current.next ==null){return null;}else {current =current.next;}}return current;}//刪除節點public Link delete(int key){Link currentLink =first;Link previous=first;while (currentLink.iData !=key) {if (currentLink.next ==null) {return null;}else {previous =currentLink;currentLink =currentLink.next;}}if (currentLink ==first) {first =first.next;}else{previous.next =currentLink.next;}return currentLink;}//插入特定節點public Boolean insertLink(int key ,int iData, double dData){int i=0;Link currentLink =first;Link previous =first;Link nextLink;Link newLink =new Link(iData, dData);//插入頭元素if ((i==key)&&(currentLink!=null)) {newLink.next =currentLink;first=newLink;return true;}else if (currentLink!=null){//i++;while (i!= (key-1)) {if (currentLink.next ==null) {currentLink.next=newLink;return true;}else {previous =currentLink;currentLink =currentLink.next;i++;}}if (currentLink.next !=null) {nextLink =currentLink.next;currentLink.next=newLink;newLink.next=nextLink;return true;}else {currentLink.next =newLink;newLink.next =null;return true;}}else if (currentLink ==null) {currentLink =newLink;first=newLink;first.next=null;return true;}return false;}//顯示鏈表所有資料public void displayList(){System.out.println("LinkList.displayList() List(first-->last):");Link currentLink =first;while (currentLink!=null) {currentLink.displayLink();currentLink =currentLink.next;}System.out.println("");System.out.print("LinkList.displayList() finish");}}
public class LinkListApp {public static void main(String[] args){LinkList theLinkList =new LinkList();theLinkList.insertLink(9, 999, 999.999);theLinkList.displayList();theLinkList.insertFirst(22, 22.22);theLinkList.insertFirst(33, 33.33);theLinkList.insertFirst(44, 44.44);theLinkList.insertFirst(55, 55.55);theLinkList.displayList();theLinkList.insertLink(2, 333, 333.333);theLinkList.displayList();theLinkList.insertLink(7, 777, 777.777);theLinkList.displayList();System.out.println("");while (!theLinkList.isEmpty()) {Link aLink =theLinkList.deleteFirst();System.out.print("Deleted ");aLink.displayLink();System.out.println("");} theLinkList.displayList();}}
學習java資料結構基礎知識之鏈表