ABOUT ME

-

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

    연결리스트

    2학년 자료구조 수업 강의자료를 통해 공부하고 이해가 되지않는 부분은 선배에게 질문함.

     


    1. 이론

    노드에 대한 이해를 바탕으로 노드 클래스 작성하였다.

     

     

    연결리스트의 숫자 정렬을 위한 메소드인 삽입 메소드와 삭제 메소드 작성하였다.

    • 삽입메소드

    포인터를 통해 연결리스트의 데이터를 확인하여 삽입할 위치를 찾고 새로운 노드를 만들어 포인터로 연결한다.

    이때 노드의 생성자는 int형 data값과 Node형 next를 저장한다.

    삽입할 위치가 맨 앞일 경우 start를 바꿔주어야하므로 조건문을 따로 작성해 주어야한다.

    • 삭제 메소드

    포인터를 통해 연결리스트의 삭제할 값 위치를 찾아 포인터 연결을 바꿔 삭제한다.

    start를 삭제할 경우와 연결리스트 안에 삭제할 값이 없을경우 조건문을 따로 작성해야한다.

    2. 실습

    실습으로 연결리스트 프로그램인 MyLinkedList 클래스를 작성하였다.

    • 정해진 갯수만큼 랜덤한 정수로 연결리스트를 만드는 생성자 작성

    • 리스트에서 사용자가 정한 수의 배수에 해당하는 수를 모두 삭제하는 메소드 작성

    사용자가 정한수로 데이터 값을 나눠 나머지 값을 통해 배수를 찾고 포인터의 연결을 바꿔 삭제한다.

    start가 배수일경우 start를 바꿔주고 포인터를 다시 지정해줘야한다.

    • 리스트의 순서를 반대로 하는 메소드 작성

    포인터를 여러개 사용하여 연결리스트의 연결의 방향을 처음부터 차례로 반대로 바꾼다. 연결이 끊긴 부분을 좌우로 하여 prev와 next에 저장한다.

    연결리스트의 값을 바꾸는 방법을 생각했었는데 잘 해결되지 않았고 포인터를 여러개 사용하여 해결하는 방법을 조언받아 해결할 수 있었다.

    • 프린트 메소드 작성


    느낀점

    연결리스트는 1학년 2학기에 배웠었지만 막상 다시 해보면서 얕게 알고있었다는 것을 느꼈다.

    특히 포인터 사용에서 부족했던 점을 여러 메소드를 작성해보면서 완벽하게 이해할 수 있었다.

    댓글

Designed by Tistory.