| 니앙팽이 - 자료구조| 1 | 연결 리스트 노트

2022. 3. 13. 15:10·PS/자료구조
no title

배열과 연결리스트

Quest

❗ 배열과 연결리스트의 차이

  • ___ 배열 연결리스트
    형식 정적 동적
    접근 random Access : O(1) Sequential Access : O(N)
    삽입 맨앞 O(N)
    맨뒤 O(1)
    맨앞O(1)
    맨뒤 O(N)
    삭제 맨앞 O(N)
    맨뒤 O(1)
    맨앞O(1)
    맨뒤 O(N)

연결리스트

1. 더미노드

❗ 더미노드는 왜 쓰는건가?

  • 연결리스트(더미노드 없음) 구현 - <클릭>

2. 원형 연결리스트

❗ 작동방식

👉 구성은?
    1. list->tail
      1. 원형리스트의 마지막임
    1. list->tail->next (내지는 head)
      1. 원형리스트의 시작임
👉 복잡도는?
  • ___ 연결리스트
    형식 동적
    접근 Sequential Access :
    맨앞 : O(1)
    맨뒤 : O(N)
    삽입 맨뒤 O(1)
    삭제 맨앞O(1)
  • 원형 연결리스트 구현 - <클릭>

3. 이중 연결리스트

❗ 작동방식

👉 구성은?
  • 😈 노드와 노드형식은 서로 다른것이다. 😈

    • 노드는 data를 지닌 대상
    • 노드형식 포인터는 그냥 화살표
      • 그저 Node형식이라는것은 "노드를 가르키는" 화살표임

  • 1. Node (단일 구성원)

    • 노드형식 포인터 next
    • 노드형식 포인터 prev
    • data
  • 2. List 구성원

    • 노드형식 포인터 mHead
    • 노드형식 포인터 mTail
    • 노드형식 포인터 mCur
    • length
👉 매서드는?
  • 노드 삽입
    • 첫 생성
      1. mHaed와 mTail은 노드를 가르킨다
      2. 그것은 바로 방금 만들어진 노드이다.
        mHead = newNode;
        mTail = newNode;
        
        • 이 newNode는 방금 메모리 할당받고, 데이터도 넣은것이다.
    1. 그리고 첫 만들어진것의 구조는
      1. 이전노드도 없고
        mHead->prev = NULL;
        
      2. 다음노드도 아직없다.
        mTail->next = NULL;
        
  • 노드 삭제

  • 양방향 연결리스트 구현 - <클릭>

설계

1. 클래스 (자료형)을 선언했을때

객체생성이 되었다는 증거는 Class 선택자로 이동하는지 안하는지 중단점확인

ⓐ : Class classResult
└ 해답 Class 할당이 바로 이루어짐 (객체생성)

ⓑ : Class * classResult
└ 해답 Class 할당이 아직임 그저 앞으로 할당될 공간을 가르킨다 (객체생성 X) 대신 new를 통하면 객체 생성이 된다 (동적으로)

//이건 클래스를 지목하는 포인터일뿐, 경로일뿐이지
//아직 공간이 할당된 상태는 아니다.
//중단점 확인해봐도 new를 해야지만 Crocus 클래스를 이동하는것으로 보인다.
//따라서 *으로 했으면 아직 공간할당이 아니라
//동적으로 메모리를 할당하고 싶거나 해야할때,
//즉, 코드 진행중에 공간할당을 하고 싶을떄

2. Class * classResult = new Node를 계속한다면..

ⓐ : 초기에 실행했던 공간만 계속 지목되는건가?
ⓑ : 새로운 공간에 생겨서 지목되는건가?


해답 : ⓑ가 답이다. 근데..
문제점 : 메모리 헤제는 어떻게 해야되는거지?

근데 다행이 일단 ctrl F5하면 알아서 초기화 되는 모양이다.

3. new Node 된것을 delete한다면?

1. 궁금증2와 더불어 
2. 누수되는것은 어떻게 되는거?

참고

https://www.crocus.co.kr/1179#recentEntries
https://m.blog.naver.com/raylee00/222003225089

저작자표시 (새창열림)

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

|자료구조| 3 | BinSearchTree | 이진 탐색 트리  (0) 2022.03.13
| 니앙팽이 - 자료구조| 2 | 스택,큐 노트  (0) 2022.03.13
|자료구조| 1 | Double LinkedList_3 | 이중 연결 리스트  (0) 2022.03.13
|자료구조| 1 | Circular LinkedList_2 | 원형 연결 리스트  (0) 2022.03.13
|자료구조| 1 | LinkedList_1 | 연결리스트(더미노드 없음)  (0) 2022.03.13
'PS/자료구조' 카테고리의 다른 글
  • |자료구조| 3 | BinSearchTree | 이진 탐색 트리
  • | 니앙팽이 - 자료구조| 2 | 스택,큐 노트
  • |자료구조| 1 | Double LinkedList_3 | 이중 연결 리스트
  • |자료구조| 1 | Circular LinkedList_2 | 원형 연결 리스트
니앙팽이
니앙팽이
  • 니앙팽이
    니앙팽이 블로그
    니앙팽이
  • 전체
    오늘
    어제
    • 분류 전체보기 (126)
      • 그림그리기 (7)
      • 음악 (4)
        • FL Studio & MIDI (2)
        • 자작곡 (2)
      • 게임 (7)
        • 모바일 (0)
        • 스팀 (0)
        • 닌텐도 (0)
        • 개발 (7)
      • CS (44)
        • SW 공학 (27)
        • DB (7)
        • OS (9)
        • 네트워크 (1)
      • 팁 (9)
      • Language (21)
        • C# (8)
        • C&C++ (3)
        • 파이썬 메모 (3)
        • Javascript (7)
      • PS (0)
        • 알고리즘 (24)
        • 자료구조 (8)
        • 수학 (1)
        • 선형대수 (0)
        • 오토마타 (1)
        • 이산수학 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    유니티
    KAKAO
    디자인패턴
    자료구조
    Javascript
    클립 스튜디오
    그림 연습
    알고리즘
    객체지향개발
    따라그리기
    프로세스
    Stack
    가비지 콜렉터
    unity
    c#
    노마드 코더
    프로그래머스
    연결리스트
    파이썬
    clip studio paint
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
니앙팽이
| 니앙팽이 - 자료구조| 1 | 연결 리스트 노트
상단으로

티스토리툴바