Single Linked List 정방향, 역방향 출력하기 (Print, ReversePrint)

Jaden·2023년 5월 1일

개요

Linked List 출력하기

  1. 정방향 Print
    head가 가리키는 노드부터 출력한다.
  2. 역방향 Print
    끝에서부터 차례로 출력하여 head가 가리키는 노드를 마지막으로 출력한다.

즉, head -> 1-> 2-> 3-> 4 라는 연결리스트가 존재할 때, 정방향Print는 [1, 2, 3, 4]를 출력하고 역방향Print는[4, 3, 2, 1]을 출력한다.


1. 정방향 Print

void Print(Node* p){
	if(p == NULL){
		return;
	}
	printf("%d", p -> data);
	Print(p -> ptr);
}
  • printf로 출력 후 Print함수 순환 호출
  • 출력 -> print함수호출 -> 출력 -> print함수호출 -> ... -> 출력 -> print함수호출 -> NULL -> 함수종료 -> 함수 종료 -> ... -> 함수 종료

2. 역방향 Print (ReversePrint)

void ReversePrint(Node* p){
	if(p == NULL){
		return;
	}
	ReversePrint(p -> ptr);
	printf("%d", p -> data);
}
  • ReversePrint 함수를 순환 호출한 후, printf로 출력
  • ReversePrint함수호출 -> ReversePrint함수호출 -> ... ->ReversePrint함수호출 -> NULL -> 출력 -> ReversePrint함수종료 -> 출력 -> ReversePrint함수종료 -> ... -> 출력 -> ReversePrint함수종료

0개의 댓글