【データ構造】再帰コードテンプレート

出典:秦チャオ

Pythonコードテンプレート

def recursion(level, param1, param2, ...): 
    # recursion terminator 
    if level > MAX_LEVEL: 
	   process_result 
	   return 
    # process logic in current level 
    process(level, data...) 
    # drill down 
    self.recursion(level + 1, p1, ...) 
    # reverse the current level status if needed

Javaコードテンプレート

// Java
public void recur(int level, int param) {
    
     
  // terminator 
  if (level > MAX_LEVEL) {
    
     
    // process result 
    return; 
  }
  // process current logic 
  process(level, param); 
  // drill down 
  recur( level: level + 1, newParam); 
  // restore current status 
 
}

C / C ++

void recursion(int level, int param) {
    
     
  // recursion terminator
  if (level > MAX_LEVEL) {
    
     
    // process result 
    return ; 
  }

  // process current logic 
  process(level, param);

  // drill down 
  recursion(level + 1, param);

  // reverse the current level status if needed
}

JavaScript

const recursion = (level, params) =>{
    
    
   // recursion terminator
   if(level > MAX_LEVEL){
    
    
     process_result
     return 
   }
   // process current level
   process(level, params)
   //drill down
   recursion(level+1, params)
   //clean current level status if needed
   
}

おすすめ

転載: blog.csdn.net/ao1886/article/details/110234834