%DFS 点灯问题 深度优先算法
void DFS(Vertex V)
{ visited[v]=true;
for(v的每一个临接点w)
if (!visited[w])
DFS(w)
}
%BFS 广度优先算法
void BFS(Vertex V)
{ visited[V]=true;
Enqueue(V,Q);
while (!IsEmpty[Q]){
v=Dequeue(Q);
for(V的每一个零界点w){
visited[w]=true;
Engueue(w,Q);
}
}
}
%最小连通分量
void ListComponents(Graph G)
{for (each V in G)
if (!visited[v]){
DFS(v);
}
}
%拯救007
void save007(Graph G)
{ for (each v in G){
if(!visited[v]&&FirstJump(v)){
answer=DFS(v);
if (answer==YES) break;
}
if (answer==YES) output("YES");
else output("NO");
}
}
%二叉树的遍历—先序遍历(根节点->左->右)
void PreOrderTraversal(BinTree BT)
{
if(BT){
printf("%d",BT->Data);
PreOrderTravelsal(BT->Left);
PreOrderTravelsal(BT->Right);
}
}
%二叉树的遍历—中序遍历(左->根节点->右)
void InOrderTraversal (BinTree BT)
{
if(BT){
InOrderTravelsal(BT->Left);
printf("%d",BT->Data);
InOrderTravelsal(BT->Right);
}
}
%二叉树的遍历—序遍历(左->右->根节点)
void PostOrderTraversal (BinTree BT)
{
if(BT){
PostOrderTravelsal(BT->Left);
PostOrderTravelsal(BT->Right);
printf("%d",BT->Data);
}
版权声明:本文为qq_44149765原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。