[알고리즘] 문제 풀이32 2021.2.6 TIL : [자료구조] 양방향 연결리스트 오늘은 양방향 연결 리스트의 동작 원리와 구현 방법을 공부하고, 이를 통해 포인터 사용 능력을 업해보는 시간을 가졌다. 양방향 연결 리스트란 지난 2월 5일에 작성한 TIL에서 배운 단일 연결리스트와 달리, 포인터를 2개 사용하여 원소의 앞과 뒤를 모두 연결한 리스트를 의미한다. 따라서 이 리스트의 각 노드는 앞 순서의 노드에 대한 포인터, 뒤 순서의 노드에 대한 포인터를 데이터 값과 함께 가지고 있다. 이를 위해 노드의 자료형 자체에서 포인터 2개와 데이터 값까지 표현해 줄 필요가 있다. 특히, 수업에서는 오름차순으로 정리된 연결리스트를 만들었다. 이전까지는 for loop를 주로 사용했는데, 이 수업에서는 while loop를 더 많이 사용했다. for에 적응이 되고 나면 while을 쉽게 할 수 있.. 2021. 2. 7. 2021.2.5 TIL : [자료구조] 연결리스트 연결 리스트는 말 그대로 앞, 뒤의 순서가 있는 리스트를 말한다. 이는 배열과도 비슷한데, 배열 기반 리스트는 배열로 만들어서 그 순서를 알기 쉬운 반면(ex. arr[0], arr[1]), 연결 리스트는 1 ---> 2 이런 식으로 진행되기 때문에 다른 점이 있다. 배열 같은 경우는 기초 C 언어 강의(나의 경우는 CS50)에서 다루고 있기 때문에 별도로 주의깊게 살피지는 않았다. 다만 배열 기반 리스트는 다음과 같은 특징이 있었다. 1) 배열로 만들어 특정 위치에 뭐가 있는지 알 수 있다. 2) 데이터가 들어갈 공간에 맞게 미리 메모리를 할당해야 한다. (배열의 길이를 미리 알아야 함) 3) 원하는 위치로 삽입이 번거롭다. (하나의 데이터를 삽입할 시, arr[i+1] = arr[i] / 하나의 데이.. 2021. 2. 6. 이전 1 ··· 3 4 5 6 다음