포인터를 공부하면서 만든 링크드 리스트
-원형 양 방향 리스트.
먼저 구조체를 선언한다.
데이터 추가
헤드 = 시작 노드, 테일 = 끝 노드
새로운 노드를 하나 만들고 초기화해주고, 첫 번째 생성이라면 헤드가 널인 상태이기 때문에 첫 번째 노드는 헤드에 저장된다.
두 번째부터는 헤드가 널이 아니므로 else에서 Node포인터를 생성하여 헤드를 받아서 앞으로 이동한다.
while에서 앞으로 이동하는 명령을 내린다.
pTamp가 가르키는 pNext가 널이 아니면 pTamp에 pTamp->pNext를 넣어라. 맨 끝에 도달하면 pTamp->pNext는 널이기 때문에 while을 빠저나와 pTamp->pNext에 새로만든 노드를 넣어 한 칸 더 연결된다.
pNode->pBack에 이전노드를 연결해준다.
자동적으로 마지막으로 만든 노드는 테일에 넣어준다.
쓸모 없는 코드 지우고 작성하기
데이터 선택 삭제
헤드와 테일의 노드가 삭제할 데이터인지 먼저 검색하고 아니라면 두 번째 노드부터 탐색을 시작한다.
- void* 리스트 클래스
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 |