쌓고 쌓다

싱글, 더블 링크드 리스트 출력(반복문, 재귀) 본문

알고리즘/자료구조

싱글, 더블 링크드 리스트 출력(반복문, 재귀)

승민아 2022. 10. 6. 19:37

반복문 정방향 출력 ( 싱글 + 더블 )

void Print()
{
	Node* tmp = head;
	while (tmp != NULL)
	{
		printf("%d->", tmp->data);
		tmp = tmp->next;
	}
}

 

반복문 역방향 출력 (더블)

void ReversePrint()
{
	Node* tmp = head;

	if(tmp==NULL)
		return;

	while (tmp->next != NULL)
	{
		tmp = tmp->next;
	}

	while (tmp != NULL)
	{
		printf("%d->", tmp->data);
		tmp = tmp->prev;
	}
	
}

 

재귀 함수 정방향 출력 ( 싱글 + 더블 )

void Print(Node* p)
{
	if (p != NULL)
	{
		printf("%d->", p->data);
		Print(p->next);
		return;
	}
	return;
}

 

재귀 함수 역방향 출력 ( 싱글 + 더블 )

void ReversePrint(Node* p)
{
	if (p != NULL)
	{
		ReversePrint(p->next);
		printf("%d->", p->data);
		return;
	}
	return;
}

 

Comments