당근개발자
당근당근
당근개발자
전체 방문자
오늘
어제
  • 분류 전체보기 (157)
    • codepresoo (13)
    • JAVA (1)
    • JS (12)
    • 코딩 테스트 (7)
    • Spring (21)
    • 자료구조 (4)
    • HTTP (7)
    • JSP (36)
    • Etc (21)
    • RESTful (11)
    • React (1)
    • k8s (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online
  • queue#자료구조
  • thymleaf#layout#fragment#thymleaf layout 적용안됌
  • #코드프레소. #codepresso #대외활동 # IT교육 #코딩강의 #코딩 이러닝 # 무료 IT교육 #무료 코딩교육
  • 코드프레소. #codepresso #대외활동 # IT교육 #코딩강의 #코딩 이러닝 # 무료 IT교육 #무료 코딩교육
  • dobule_linked_list#java
  • Primitive#Wrapper
  • 이
  • 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
  • thymleaf error#template might not exist
  • S
  • 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수강하고있는강의명
  • HATEAOD
  • 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online.
  • stack#자료구조
  • @JsonFilter#당근개발자

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
당근개발자

당근당근

자료구조

Double Linked List (더블 링크드 리스트 )구현 - 자바

2022. 1. 5. 21:38
    public class Main<T>{
    
    public Node<T> head = null;
    public Node<T> tail = null;

    public class Node<T>{

        T data;
        Node<T> prev = null;
        Node<T> next = null;

        public Node(T data){
            this.data =data;
        }

    }

    public void addNode(T data){


        Node<T> input = new Node<T>(data);

        if(this.head == null){
            this.head =input;
            this.tail = input;
            return;
        }else{
            Node<T> node = head;
            while(node.next != null){
                node = node.next;
            }
            input.prev = node;
            node.next = input;
            this.tail = input;

        }

    }
    public void printNodeAll(){
        Node<T> node = null;
        if(head == null){
            return;
        }else{
            node = head;
            System.out.println(node.data);
            while(node.next != null){
                System.out.println(node.next.data);
                node = node.next;
            }

        }
    }
    public Node<T> searchFromHead(T item){
        Node<T> node =null;

        if(head ==null){
            return  null;
        }else{
            node = head;
            if(node.data == item){
                return node;
            }
            while(node.next !=null){
                if(node.next.data == item){
                    return node.next;
                }
                node = node.next;
            }
        }

        return null;
    }

    public Node<T> searchFromTail(T item){

        if(this.tail == null){
            return null;
        }else{
            Node<T> node = tail;
            if(node.data == item){
                return node;
            }
            while(node.prev != null){
                if(node.prev.data == item){
                    return node.prev;
                }
                node = node.prev;
            }
        }

        return new Node<T>(null);

    }


    public boolean insertNode(T idx, T item){
        Node<T> origin =this.searchFromHead(idx);

        Node<T> input = new Node<T>(item);

        if(origin == null){
            this.addNode(item);
            return true;
        }

        if(origin.next == null){
            origin.next = input;
            input.prev = origin;
            this.tail = input;
        }else{
            input.prev = origin;
            input.next = origin.next;
            origin.next.prev =input;
            origin.next = input;
        }
        return true;
    }
    }

'자료구조' 카테고리의 다른 글

HashMap -chaning 기법  (0) 2022.01.07
Stack  (0) 2022.01.04
Queue  (0) 2022.01.04
    '자료구조' 카테고리의 다른 글
    • HashMap -chaning 기법
    • Stack
    • Queue
    당근개발자
    당근개발자

    티스토리툴바