- /*
- *
- *
- * 雙向鏈結
- *
- */
- public class Double_LinkedList {
- douNode frist , last ;
- douNode node ;
- public static void main(String[] args) {
- Double_LinkedList nss = new Double_LinkedList("來福3",33,1);
- for(int i = 1 ; i < 12; i++){
- nss.addNode("來福"+i, i+100, i);
- }
- nss.remove(5);
- nss.remove(10);
- nss.print();
- }
- void print(){
- douNode curr = frist ;
- while(curr != null){
- System.out.println(curr.name+" : "+curr.score+" : "+curr.num);
- curr = curr.RLINK ;
- }
- }
- Double_LinkedList(String n, int s, int nu ){
- node = new douNode(n, s, nu);
- frist = node ;
- last = node ;
- }
- void addNode(String n, int s, int nu){
- node = new douNode(n, s, nu);
- douNode curr = frist ;
- last.RLINK = node ;
- node.LLink = last ;
- last = node ;
- }
- void Insert(int num , douNode Node){
- if(frist.num == num){
- Node.RLINK = frist ;
- frist.LLink = Node ;
- frist = Node ;
- }else if(last.num == num){
- last.RLINK = Node ;
- Node.LLink = last ;
- last = Node ;
- }else{
- douNode pervious = frist , curr = frist ;
- while(curr.num != num){
- pervious = curr ;
- curr = curr.RLINK ;
- }
- pervious.RLINK = Node ;
- Node.LLink = pervious ;
- Node.RLINK = curr ;
- curr.LLink = Node ;
- }
- }
- void remove(int num ){
- if(frist.num == num){
- frist = frist.RLINK ;
- frist.LLink = null ;
- }else if(last.num == num){
- last.LLink.RLINK = null ;
- last = last.LLink ;
- }else{
- douNode pervious = frist , curr = frist ;
- while(curr.num != num){
- pervious = curr ;
- curr = curr.RLINK ;
- }
- pervious.RLINK = curr.RLINK ;
- curr.RLINK.LLink = pervious ;
- }
- }
- }
- class douNode extends Node{
- douNode LLink ;
- douNode RLINK ;
- douNode(String n, int s, int nu ) {
- super(n, s, nu);
- }
- }
2017年7月29日 星期六
(Java)雙向鏈結
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。