我找到了二叉树和其他类型的树。
我不明白如何为一个通用的树做一个搜索方法。
我想出的东西是这样的
comparable Search(GeneralTreeNode node, comparable key){
if(node != root){
if(root.getChildren().contains(node))
return node.key;
}
else return // I dont know what to do next ???????
}
}
我的类将root作为我的通用树节点,将key作为可比较的对象。
广度优先搜索和深度优先搜索是两个相同的算法,除了它们所做的事情,以及它们使用的数据结构。
广度优先搜索:
q := queue
q.append(root node of tree)
while q is not empty:
n := q.pop()
if n is the node being searched for:
return n
if n has children:
c := children of node
for i in c:
q.push(i)
深度优先搜索:
s := sta
我想更好地了解各种常见的搜索算法是如何相互关联的。有没有人知道一种资源,比如层次结构图或对此的简明文本描述?
我的意思的一个小例子是:
A* Search
-> Uniform-cost is a variant of A* where the heuristic is a constant function
-> Dijkstra's is a variant of uniform-cost search with no goal
-> Breadth-first search is a variant of A* where all ste
我使用Outlook 2007,我已经订购了我的邮件,以便最近的邮件位于顶部(默认配置)。
每当我搜索任何东西时,搜索结果都会以正确的顺序显示,但最古老的邮件首先被找到。
为了解释我的意思,假设这些是我收件箱里的邮件:
mail find_in_search 1
mail find_in_search 2
mail find_in_search 3
mail find_not 1
mail find_not 2
mail find_in_search 4
mail find_not 3
当我搜索find_in_search时,结果如下:
0.5s后的
邮件find_in_search 41.0