ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2019 동계 모각코] 2차시 - 결과
    모여서 각자 코딩/2019 동계 모각코 2022. 3. 12. 23:58

    이중연결리스트


     

    1.이론

     

    이중연결리스트를 이용하여 큐(Queue) 구조를 구현하여 이중연결리스트에 대한 전반적인 이해를 했다.

    이 중 add메소드의 첫번째 줄을 이해하는 것이 어려워 한 줄로 작성하는 것 대신 풀어서 코드를 작성해봄으로써 이해할 수 있었다.

     

    2.실습

     

    DLinkedList클래스를 작성하여 이중연결리스트를 구현했다.

    이 클래스는 큐 구조에서 head노드와 마지막 노드사이의 연결이 없는 이중연결리스트를 구현했다.

    1) 삽입메소드-add()

    : 삽입할 노드를 head로 하여 이중연결한다.

    head는 빈노드로 생성해 정의한다.

    head가 없을 땐 데이터로 head를 생성하고 있을경우 새로운 Node를 만들어 Node 클래스에 정의된 prev와 next로 연결해준뒤 head를 바꿔준다.

    2)삭제메소드-remove()

    : 메소드가 실행되면 항상 head의 다음 노드를 삭제하도록 한다.

    head와 head 다음 다음 노드 사이의 연결로 head 다음노드를 삭제한다.

    3) isEmpty()

    : 이중연결리스트가 비었는지 확인하는 메소드

    노드가 삽입 삭제될 때 size 값을 변경시켜 이 변수로 확인한다.

    4) first()

    : head의 데이터 값을 반환한다.

    5) print()

    : 이중연결리스트가 잘 되어있는지 확인하기 위한 메소드로 head에서 끝 노드까지 데이터 값을 출력하고 끝노드에서 head까지 데이터 값을 차례로 출력한다.

    이중연결리스트는 next와 prev를 통해 포인터를 자유롭게 움직일 수 있다는 점을 사용했다.

    6)결과

     


    느낀점

    이중연결리스트를 처음 봤을 때는 어려웠지만 코드를 작성해보면서 이해할 수 있었고 이중연결리스트를 이해함으로써 단일연결리스트는 쉽게 받아들여졌다. 이중연결리스트가 포인터를 앞뒤로 움직이며 원하는 노드로 쉽게 이동할 수 있다는 것이 신기했다. 이중연결리스트를 통해 stack구조 구현하는 것을 과제로 받아서 다음 모각코 전까지 구현할 것이다.

    댓글

Designed by Tistory.