Code 예제

더블링크드 리스트 예제

김대근'IT공부 2018. 12. 17. 15:05

public class listNode {
// 첫노드필드
 private int data = 0;
 private Node llink;
 private Node rlink;
 
 // 이전 노드 정보
 private class Node{
    private int data;
    private Node next;
    private Node prev;
    
    public Node(int input) {
     this.data = input;
     this.next = null;
     this.prev = null;
     
    }
   }
 //rlink 새로운 노드 지정
 public void addFirst(int input) {
  Node newNode = new Node(input);
  newNode.next = rlink;
  
  if(rlink != null)
  rlink.prev = newNode;
  
  rlink = newNode;
  data++;
  
  if(rlink.next == null) {
   rlink = llink;
  }
 }
 //llink 노드 지정
 public void addLast(int input) {
  Node newNode = new Node(input);
  
  if(data == 0) {
   addFirst(input);
  }else {
   llink.next = newNode;
   newNode.prev = llink;
   llink = newNode;
   data++;
  }
 }
 
}

반응형