2016-02-26 71 views
0

我想建立一個簡單的樹並比較孩子和遞歸調用,它像一個迷你最大算法。比較每個節點的值並返回根的子節點。如何在C#中編寫簡單的minimax算法?

我試了一整天,我不能正確編碼它。如果你有迷你最大算法的經驗,請幫助我,或者如果你有任何來源瞭解它,請告訴我。

有人可以使用3個或更多深度(迭代)基於此節點的示例代碼?

class node 
{ 

    public int value; 
    public int id; 
    public List <node> child = new List <node>(); 
} 

回答

0

試試這個: 使全局變量:

public node minNode; 
public node maxNode; 

創建功能:

public void Compare(node currentNode) 
{ 
    if (minNode.value>currentNode.value) 
    { 
     minNode=currentNode; 
    } 
    if (maxNode.value<currentNode.value) 
    { 
     maxNode=currentNode;  
    } 
    foreach(var currNode in currentNode.child) 
    { 
     Compare(currNode); 
    } 
} 

,然後在你的代碼調用它:

minNode=rootNode; 
maxNode=rootNode; 
Compare(rootNode); 

在這之後你的意志ake max和min在此變量中,其中rootNode是樹中的根節點