본문 바로가기

General/Algorithm

[자료구조] 연결리스트 ADL 작성시의 기본 / Linked List ADL

10학번 후배 동생녀석이 자료구조가 어렵다고 알려달라고 하길래,
몇년만에 자료구조책을 보면서 알려주었습니다.

그 김에 이렇게 오랜만에 자료구조에 대해서 글을 쓰는군요.


자료구조는 많은 것들의 기본이 되기 때문에 매우 중요한데, 오랜만에 다시 둘러보니, 새롭고 좋네요. ^^


연결리스트 관련 ADL 작성시 생각할 것

 1. 리스트 L이 NULL인지 확인하고 예외처리를 한다.
 2. 포인터 p가 NULL인지 확인하고 예외처리를 한다.
 3. 첫 노드에 관련된 경우 L에 대한 사후 처리를 한다.
 4. 마지막 노드에 관련된 경우 마지막 노드에 대한 사후 처리를 한다.
 5. 원하는 결과를 얻기 위한 비교, 또는 반복문을 도출한다.

 L : 연결리스트를 가리키는 포인터
 p : 연결리스트에 관련된 순회포인터(또는 지정포인터)  


노드 추가를 위한 새로운 노드 생성시 생각할 것
 1. 노드를 생성한다.
 2. 노드에 데이터를 입력한다.
 3. 노드의 링크를 처리한다. (상황에 따라 NULL 또는 어딘가로의 링크) 

 ex)
 newNode <- getNode();
 newNode.data <- x;
 newNode.link <- NULL; // 또는 이 코드는 쓰지 않는다.



사실 ADL만 잘 작성할 수 있어도, 해당 부분에 대한 알고리즘을 짠것이기 때문에, 코딩에 있어서도 별 문제가 없어집니다.

이 글과 연계하여 실제 ADL 작성에 관련된 글들도 한번 포스팅 해보아야 겠군요 ^^