您好,登錄后才能下訂單哦!
1,鏈表是以節點的方式來存儲的;
2,每個節點包含data域、next域:指向下一個節點;
3,鏈表的每個節點不一定是連續的;
4,鏈表分帶頭節點的鏈表,和不帶頭節點的鏈表,根據實際情況來決定。
帶頭節點的單向鏈表
頭節點
1,存放具體數據
2,作用就是作為單鏈表的頭
帶頭節點的單鏈表
添加(創建)
1,先創建一個頭結點
2,添加其他節點,直接加入到鏈表的最后
package?com.datastack.linkedlist; public?class?SimpleLinkedList?{ public?HeroNode?head?=?new?HeroNode(0,"","");//頭結點 /** ?*?添加方法:不考慮順序添加 ?*?1,找到最后節點 ?*?2,將最后節點的next指向?新的節點 ?*?@param?heroNode ?*/ public?void?add(HeroNode?heroNode){ HeroNode?temp?=?head; while(true){ if(temp.next?==?null){ break; } temp?=?temp.next; } temp.next?=?heroNode; } /** ?*?按編號從小到大順序添加 ?*?@param?heroNode ?*/ public?void?addByOrder(HeroNode?heroNode){ HeroNode?temp?=?head; boolean?flag?=?false;//標識添加的編號是否存在 while(true){ if(temp.next?==?null){ break; } if(temp.next.no?>?heroNode.no){ break; }else?if(temp.next.no?==?heroNode.no){ flag?=?true; break; } temp?=?temp.next; } if(flag){ System.out.printf("準備插入的英雄的編號?%d?已存在,不能添加\n",heroNode.no); }else{ heroNode.next?=?temp.next; temp.next?=?heroNode; } } /** ?*?顯示鏈表 ?*/ public?void?list(){ //判斷鏈表是否為空 if(head.next?==?null){ System.out.println("鏈表為空"); return; } HeroNode?temp?=?head.next; while(true){ if(temp?==?null){ break; } System.out.println(temp); temp?=?temp.next; } } /** ?*?修改 ?*?@param?heroNode ?*/ public?void?update(HeroNode?heroNode){ HeroNode?temp?=?head.next; boolean?flag?=?false;//表示是否找到該節點 while(true){ if(temp?==?null){ break; } if(temp.no?==?heroNode.no){ flag?=?true; break; } temp??=?temp.next; } if(flag){ temp.name?=?heroNode.name; temp.nickname?=?heroNode.nickname; }else{ System.out.println("沒有找到要修改的編號"); } } /** ?*?刪除 ?*?@param?heroNode ?*/ public?void?delete(int?no){ HeroNode?temp?=?head; boolean?flag?=?false;//是否找到要刪除的節點 while(true){ if(temp.next?==?null){ break; } if(temp.next.no?==?no){ flag?=?true; break; } temp?=?temp.next; } if(flag){ temp.next?=?temp.next.next; }else{ System.out.println("沒有找到要刪除的節點"); } } }
package?com.datastack.linkedlist; public?class?HeroNode?{ public?int?no; public?String?name; public?String?nickname;//昵稱 public?HeroNode?next;//下一個節點 //構造器 public?HeroNode(int?no,String?name,String?nickname){ this.no?=?no; this.name?=?name; this.nickname?=?nickname; } //打印 public?String?toString(){ return?"HeroNode?[no="+no+",name="+name+",nickname="+nickname+"]"; } }
package?com.datastack.linkedlist; public?class?SimpleLinkedListDemo?{ public?static?void?main(String[]?args)?{ HeroNode?hero1?=?new?HeroNode(1,?"宋江",?"及時雨"); HeroNode?hero3?=?new?HeroNode(3,?"吳用",?"智多星"); HeroNode?hero2?=?new?HeroNode(2,?"盧俊義",?"王麒麟"); HeroNode?hero4?=?new?HeroNode(4,?"林沖",?"爆炸頭"); SimpleLinkedList?linkedList?=?new?SimpleLinkedList(); linkedList.addByOrder(hero1); linkedList.addByOrder(hero4); linkedList.addByOrder(hero2); linkedList.addByOrder(hero3); linkedList.list(); HeroNode?heroNode?=?new?HeroNode(2,?"wuyong",?"wy"); linkedList.update(heroNode); System.out.println("修改后"); linkedList.list(); System.out.println("刪除后"); linkedList.delete(1); linkedList.list(); System.out.println("刪除后"); linkedList.delete(4); linkedList.list(); } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。