條件:一顆普通的二叉樹,給定二叉樹的兩個節點,nodea、nodeb
輸出:找到nodea和nodeb的最短路徑,並輸出:如的d節點到h節點的最短路徑為紅線所示:
//輸出最短路徑
public static string outputminpath(node bintree, nodenoderoot, nodenode1, nodenode2)
public static string getminpath(string node1toroot, string node2toroot)
//加上重複節點
minpath = minpath + node1toroot[i].tostring() + "-->";
//第二個節點路徑
for (int k = cfindex - 1; k > -1; k--)
//去除後面的"-->"
minpath = minpath.substring(0, minpath.length - 3);}}
return minpath;
}//獲取某節點到根節點的路徑
public static string getrootpath(node bintree, nodenode)
return list.toarray();
}#region 二叉樹結點資料結構的定義
//二叉樹結點資料結構包括資料域,左右結點以及父結點成員;
public class node
public nodelnode
public nodernode
public nodepnode
}#endregion}}
最後結果如下:
二叉樹求最短路徑
include include using namespace std template struct binarytreenode binarytreenode left binarytreenode right t data template class binarytree node root...
二叉樹 路徑
二叉樹中,從根節點到葉節點的每一條連線,我們稱之為路徑,最短路徑和最長路徑在之前的部落格中,我們已經完成了對他們的討論,現在我們討論一下,輸出一棵二叉樹中全部的路徑資訊。如下所示 public class operation childbinarytreepath root,return resul...
C 實現二叉樹
其中的 linkstack.h 和 linkqueue 分別在 以下兩篇博文裡 linkstack linkqueue include include linkstack.h include linkqueue.h using namespace std 定義節點 templatestruct no...