JAVA double linked list
Reference:최종명 외 2인,프로그래머를 위한 JAVA2 4E,홍릉출판사
ElementNode.java
ElementNode.java
- import java.util.*;
- public class ElementNode<T extends Comparable>{
- public ElementNode<T> next,previous;
- private T value;
- public ElementNode(T v){
- value = v;
- }
- public ElementNode left(){
- return previous;
- }
- public void left(ElementNode<T> l){
- previous=l;
- }
- public ElementNode right(){
- return next;
- }
- public void right(ElementNode<T> r){
- next=r;
- }
- public T getValue(){
- return value;
- }
- public void setValue(T v){
- value=v;
- }
- }
ToDoList.java
:더블 링크드 리스트를 이용한 todolist
- public class ToDoList {
- private String date;
- private ElementNode<String> todos;
- this.date=date;
- }
- if(todos==null){
- todos=new ElementNode<String>(job);
- }else{
- ElementNode<String> temp = todos;
- while(temp.next != null){
- temp=temp.next;
- }//최 우측까지 next를 진행시킨다.
- ElementNode<String> temp2=new ElementNode<String>(job);
- //Node connecting.
- temp.next=temp2;
- temp2.previous=temp;
- }
- }
- ElementNode<String> temp=todos;
- while(temp != null){
- if(temp.getValue().equals(job)){
- ElementNode<String> prev=temp.previous;
- if(prev == null){
- //job이 포함된 노드를 제외하고 연결
- todos=temp.next;
- todos.previous=null;
- }else{
- prev.next=temp.next;
- temp.next.previous=prev;
- }
- break;
- }else{
- //todos가 null이면 next는 자기자신을 지칭하게한다.
- temp=temp.next;
- }
- }
- }
- buf.append(date+"일 할일 ");
- ElementNode<String> temp = todos;
- while(temp != null){
- buf.append(v);
- buf.append(" ");
- temp=temp.next; //다음노드로 진행
- }
- return buf.toString();
- }
- ToDoList list = new ToDoList("2011/2/9");
- list.add("토익 RC공부하기");
- list.add("토익 voca공부하기");
- list.add("토익 LC공부하기");
- list.delete("토익 voca공부하기");
- }
- }
댓글
댓글 쓰기