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

Jaden·2023년 5월 1일
0

개요

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개의 댓글