首頁  >  文章  >  後端開發  >  C#1,3,5,7排列組合(3位)非遞歸

C#1,3,5,7排列組合(3位)非遞歸

巴扎黑
巴扎黑原創
2016-12-20 09:11:282028瀏覽

//深度優先 
類節目 
    { 
        靜態無效的主要(字串[] args) 
   {1,3,5,7}; 
            名單資料=新名單(); 
            堆棧的OpenStack =新的堆棧(); 
            樹根=新樹(); 
            樹父=根; 
            而(真) 
            { 
              
                如果(parent.GetDeep()== 4) 

                         
               } 
               其他 
             VAR tempSon = number.ToList(); 
                     
                       )樹節=新樹(; 
         專案; 
                       Node.Parent =父母; 
    
                   } 
             顏色= darkred] [/ COLOR] 
                   與突破; 
     Pop(); 
                  
          
        } 
               data.ForEach( p值= D 1且D = D + P); 
            的System.Console.WriteLine(D); 
      
        公共樹父; 
        公共詮釋NODEDATA; 
       名單(); 
        大眾詮釋GetDeep() 
        { 
INT I = 0; 
              VAR P =這一點; 
            而(真) 
            { 
                如果(P == NULL) 
                { 
                    回報我; 
                } 
                否則 
                { 
                    P = p.Parent; 
                    我++ ; 
                
                } 
            
            } 
        
        } 
        公共無效的printf() 
        { 
            字符串PF ="英寸; 
            VAR P =這一點; 
            而(真) 
            { 
                如果(P == NULL)
                { 
                    的System.Console.WriteLine(PF); 
                    返回; 
                } 
                否則 
                { 
                    如果(p.NodeData!= 0) 
                    { 
                        PF = p.NodeData + PF; 
                    } 
                    P = p. Parent; 
                } 
            }   
//廣度優先 
類節目 
    { 
        靜態無效中主要的(字串[] args)    ] {1,3} ; 
            名單的資料=新的List 的(); 
            佇列 openQueue =新佇列() ; 

樹根=新樹(); 
                   
                若(parent.GetDeep()== 4)                parent.printf(); 
                                其他 
                {
                   VAR tempSon = number.ToList(); 
                       { 
                          Node.NodeData =項目; 
                         // openStack.Push }(節點); 
                       openQueue.Enqueue(點);              } 
                (openQueue.Count        打破; 
               變種的ItemData = openQueue.Dequeue() ; //openStack.Pop(); 
               父親=的ItemData; 


    .Read(); 


        } 

        公共靜態無效的printf(登錄 串串D =「」; 
            data.ForEach(P => D = D + P); 
         

    } 
    類樹 
    { 
        公共樹父; NODEDATA; 
        公開名單兒子=新的List (); 
        公眾詮釋 I = 0; 
              VAR P =此; 
           且(真) 

                如果(P == NULL) 
                { 
                    回報我; 
                } 
                否則 
                { 
                    P = p.Parent; 
                    我++; 
                
                } 
            
            } 
        
        } 
        公共無效的printf() 

            字串PF =「」; 
            VAR P =如此;        { 
                若(P == NULL) 
             的System.Console.WriteLine(PF); 
                   否則 
                { 
                    如果(p.NodeData!= 0) 
                    { 
                        PF = p.NodeData + PF; 
                    } 
                    P = p.Parent; 
                } 

            } 
        
        } 
    } 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:.net知識結構下一篇:.net知識結構