-
[2019 동계 모각코] 2차시 - 결과모여서 각자 코딩/2019 동계 모각코 2022. 3. 12. 23:58728x90
이중연결리스트
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구조 구현하는 것을 과제로 받아서 다음 모각코 전까지 구현할 것이다.
728x90'모여서 각자 코딩 > 2019 동계 모각코' 카테고리의 다른 글
[2019 동계 모각코] 3차시 - 시작 (0) 2022.03.13 [2019 동계 모각코] 2차시 - 추가 (0) 2022.03.13 [2019 동계 모각코] 2차시 - 시작 (0) 2022.03.12 [2019 동계 모각코] 1차시 - 결과 (0) 2022.03.12 [2019 동계 모각코] 1차시 - 시작 (0) 2022.03.12