CPP_어소_49_리스트 (2)

CJB_ny·2022년 6월 28일
0

CPP_AROTHO

목록 보기
48/83
post-thumbnail

Temp Body

PushBack을 보면 우리가 사용하려는 노드 단위만큼으로 형변환 해주어야한다.

데이터 넣기 순서 ❗

그리고

    1. 동적할당 malloc해준다.
    1. listAddr->data에 입력 데이터 넣어주고, headNodeArr = nullptr
    1. 추가한 데이터가 처음인지 아닌지 검사
    1. 만약 데이터가 있을 경우 headNdeArr을 curFinalNode로 받아온다.
    1. while문에서 curFinalNode의 nextNodeArr이 true일때까지 반복한다.

      현재이자 마지막의 노드가 가르키는 nextNode가 없을때 까지 == 제일 마지막 노드이다.

    1. 제일 마지막 노드라면 == while빠져 나왔다면 이녀석이 제일 마지막이다.

      제일 마지막 노드 이기 때문에 1번에서 malloc으로 만들어준 주소를 curFinalNode 에다기 할당해준다.


    1. 26~29번째줄 while에서

      curFinalNode = curFinalNode->nextNodeArr 은
      curFinalNode->nextNodeArr의 값이 nullptr == 없을 때까지 반복을 하는 것이다.
      while문을 빠져 나왔다는 것은 curFinalNode가 제일 마지막 노드이다.


확인

이렇게 들어와있음.


내가 오류 낸거

지금 이부분에서 처음에 nodeAddr->이 아니라 listAddr->data, listAddr->headNodeAddr = nullptr로 접근함 그러면 안되는 이유가

데이터가 없을 경우라 if문에서 headNode주소값 넣어주어야 하기 때문에.


메모리 해제

연결형 리스트의 경우에는 지금 하나하나씩 다 해제를 해주어야하는데

이것을 어떻게 해줄까??

  • 재귀함수

    효율 ㅎㅌㅊ -> 안에 데이터 많을 경우

이렇게 if문으로 달아주면 연쇄적으로 거꾸로 돌아오면서 해제해주게된다.

뭐 이런식이 될 것이다.

  • 반복문

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글