링크드 리스트는 노드의 sequence로 구성된 data structure 이다.

 

즉 노드들이 선형적으로 순서화된 형태의 집합체 이다.

 

싱글링크드 리스트의 경우 각 노드 들은다음 노드를 가리키는 next 포인터를 포함하고 있으며

 

물론 자신의 자료도 저장하고 있다.

 

싱글 링크드 리스트의 경우  처음노드와 마지막 노드 를 가리키는 head와 tail을 가지고 있다.

 

그리고 링크드리스트는 고정된 크기를 가지고 있지 않고

 

노드를 추가하거나 삭제함으로써 사이즈를 자유롭게 조정 할 수 있다.

 

밑의 내가 구현한 싱크드 리스트의 코드의 경우  tail에 삽입 삭제를 하게끔 설정하고 구현하였는데

 

싱글 링크드 리스트의 경우 prev를 가리키는 포인터가 없으므로

 

tail에서 삭제하기 위해서 새로운 임시 포인터 tmp를 선언한후 head부터 차례대로 따라가서 tail의 바로 앞

 

노드를 찾아서 삭제하게끔 구현 하였다 ( O(n) 시간이 걸리겠죵?)

 

삽입은 O(1)이라고 할 수 있겠네요.!

 

 

 

'학부생 공부 > 자료구조' 카테고리의 다른 글

트리 (Tree)  (0) 2020.10.14
그래프 (Graph)  (0) 2020.05.03
벡터(Vector)  (0) 2020.02.15
큐(queue)  (0) 2020.02.14
스택 (Stack)  (0) 2020.02.13

+ Recent posts