포인터를 공부하면서 만든 링크드 리스트

-원형 양 방향 리스트.

Node.cpp


먼저 구조체를 선언한다.


데이터 추가

헤드 = 시작 노드, 테일 = 끝 노드

새로운 노드를 하나 만들고 초기화해주고, 첫 번째 생성이라면 헤드가 널인 상태이기 때문에 첫 번째 노드는 헤드에 저장된다.

두 번째부터는 헤드가 널이 아니므로 else에서 Node포인터를 생성하여 헤드를 받아서 앞으로 이동한다.

while에서 앞으로 이동하는 명령을 내린다.

pTamp가 가르키는 pNext가 널이 아니면 pTamp에 pTamp->pNext를 넣어라. 맨 끝에 도달하면 pTamp->pNext는 널이기 때문에 while을 빠저나와 pTamp->pNext에 새로만든 노드를 넣어 한 칸 더 연결된다.

pNode->pBack에 이전노드를 연결해준다.

자동적으로 마지막으로 만든 노드는 테일에 넣어준다.


쓸모 없는 코드 지우고 작성하기



데이터 선택 삭제

헤드와 테일의 노드가 삭제할 데이터인지 먼저 검색하고 아니라면 두 번째 노드부터 탐색을 시작한다.


- void* 리스트 클래스

소스.cpp


C4996 애러

'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

둘중 하나 선언하면 해결됨.

#pragma warning(disable: 4996) /* Disable deprecation */

#pragma warning(default: 4996) /* Restore default */

반응형

'Programming > DS & Algorithm' 카테고리의 다른 글

이진 트리의 구현과 순회  (0) 2015.06.10
트리(Tree)의 개요  (0) 2015.06.09
하노이 타워  (0) 2015.06.08
피보나치 수열(황금비)  (0) 2015.06.07
이진탐색 알고리즘  (0) 2015.06.04
순차탐색 알고리즘  (0) 2015.06.03
스텍, 큐 구현  (0) 2015.05.27
스택(Stack)과 큐(Queue)  (0) 2015.05.20