ComputerScience/Algorithms & Data Structures

C++, 더블링크드리스트에 대한 고찰

Moai27 2018. 7. 22. 06:50

요즘 코딩 하기를 너무 미루게된다...

별거아닌것부터 하기 싫어하는게 7월 초랑 너무 계획이 틀어지고 있는 것 같기도...



더블링크드리스트를 만들어보면서 느꼈던점...


왜 대부분 더블링크드리스트의 정렬을 할때,

선을 이어주는걸 바꿔주는지를 잘 모르겠다.


두 노드를 바꾸려고 할때,

두 노드의 앞 뒤 노드를 저장하여,

서로 선을 바꿔주는 식인데,


이렇게 하면 두 노드의 스왑이 너무 복잡해진다.


바로 붙어있는경우는 6개의 줄을 새로이 이어주어야하고,

떨어져있는 경우는 8개의줄을 이어주어야하기 때문이다.. ㄷㄷ;;


따라서, 노드안에있는 데이터만을

바꿔주는게 더욱 이해하기 쉬운 코드이며,

효율적인것에서도 더욱 뛰어날거로 예상된다.

(물론 데이터가 어마무시하게 크면 안되겠지만..)


잘 모르겠으면 그림판부터 켜서 그려보자 !

 


아직 제네릭링크드리스트까진 하진않았지만,

그전에 몇 번더 구현해보는게 좋을 것 같다.

생각보다 게을러서 금방 할 수 있는일을 미루다보면,

지식이 얕게 쌓이게되는것 같다.


반성하고 반성해야할 7월말이다.