C 實現最短二叉樹路徑

2021-07-23 06:51:59 字數 1170 閱讀 7052

條件:一顆普通的二叉樹,給定二叉樹的兩個節點,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...