본문 바로가기

Algorithm

스택으로 재귀함수를 비재귀적으로 구현하기

스택이란?

 - 자료를 임시적으로 저장하며 First In Last Out 구조를 가지고 있다

 

코드

 

static void recur(int n){
   IntStack s = new IntStack(n);
   while(true){
      if(n>0){
         s.push(n);
         n=n-1;
         continue;
      }
      if(s.isEmpty() != true){
         n=s.pop();
         System.out.println(n);
         n = n -2;
         continue;
      }
      break;
   }
}

 

과정

n=4

4를 푸쉬>3을 푸쉬>2를 푸쉬>1을 푸쉬> 1을 팝&출력>2를 팝&출력>3을 팝&출력>1을 푸쉬>1을 팝&출력> 4를 팝&출력 > 2를 푸쉬>1을 푸쉬> 1을 팝&출력 > 2를 팝&출력  

 

 

'Algorithm' 카테고리의 다른 글

Greedy  (0) 2022.06.21
최소공배수와 최대공약수  (0) 2022.06.19
재귀 알고리즘  (0) 2022.06.18
큐(Queue)  (0) 2022.06.08
스택(Stack)  (0) 2022.06.08