티스토리 뷰

[자료구조] 단순 연결 리스트md

안녕하세요 ! 우디입니다.🚀

오늘은 단순 연결 리스트 (Singly Linked List)에 대해 알아봅시다 !


단순 연결 리스트 ( Singly Linked List )란 ?

하나의 방향으로만 연결된 리스트 이다 .

 

단순 연결 리스트 ( Singly Linked List ) 구조

하나의 노드는 데이터 필드 ( data field ) + 링크 필드 ( link field ) 로 구성되 있다.

 

헤드 포인터 ( head pointer )

첫번째 노드를 가르키는 포인터를 말한다.

연결리스트에 접근하기 위해 헤드 포인터 즉, 첫번째 노드를 가르키는 포인터 값만 알면 리스트 안의 모드 노드에 접근이 가능하다.

 

단순 연결 리스트 ( Singly Linked List ) 구현

구조체를 이용해 데이터 필드와 링크 필드를 만들어 준다.

여기서 주의해야 할 건 링크 필드는 다음 노드의 주소가 들어가기 때문에 구조체 포인터를 사용한다.

 

삽입

  • phead : 헤드 포인터 (head) 에 대한 포인터 ( 여기에 head의 주소가 담긴다. )
  • p : 삽입될 위치의 선행노드를 가르키는 포인터 ( p 노드 다음에 삽입된다 . )
  • new_node : 새로운 노드를 가르키는 포인터

 

  1. head 가 NULL 인 경우

: head가 NULL 이라면 현재 삽입하려는 노드가 첫번째 노드가 된다. 따라서 head 값만 변경하면 된다.

 

  1. p가 NULL 인 경우

: new_node 를 리스트의 맨 앞에 삽입한다.

 

  1. head 와 p 가 NULL 이 아닌 경우

: 가장 일반적인 경우이다.

 

< Total >

 

삭제

  • phead : 헤드 포인터 (head) 에 대한 포인터 ( 여기에 head의 주소가 담긴다. )
  • p : 삭제될 위치의 선행노드를 가르키는 포인터 ( p 노드 다음에 삭제된다 . )
  • removed : 삭제될 노드를 가르키는 포인터 ( ❗❗ 노드를 동적할당 받았으면 반드시 삭제할 노드는 연결리스트 변경 후 메모리 해제시켜주기❗❗ )

 

  1. p 가 NULL 인 경우

: 연결리스트의 첫번째 노드를 삭제한다.

 

  1. p가 NULL 인 경우

: 가장 일반적인 경우

 

< Total >

 

역순

 

탐색

 

출력

 


노드 동적 생성 , 삽입, 삭제 , 초기화 , 역순 , 탐색 , 출력

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함