小编Aka*_*ana的帖子

深度优先在python中搜索错误:密钥错误7

在此输入图像描述

我编写了以下python程序来执行给定图形的DFS,但在执行后它给出了错误:键错误7.我的代码有什么问题?

output=[]
graph = {
            9:[8,7,6],
            8:[5,4],
            6:[3,2],
            5:[1,0]
        }

def dfs(graph,root):
    stack=[]
    visited=set()

    stack.append(root)
    output.append(str(root))
    visited.add(root)

    while not(stack==[]):
        for item in graph[root]:

            if item not in visited:
                stack.append(item)
                visited.add(item)
                output.append(str(item))

            if set(graph[item]).union(visited)==visited:
                stack.pop(-1)
                root=stack[len(stack)-1]
                continue

            root=item

dfs(graph,9)
print(" ".join(output))
Run Code Online (Sandbox Code Playgroud)

在添加@amit给出的建议后,问题仍然没有解决,我已经编写了以下代码并且输出的输出不正确,请帮忙!

output=[]
graph = {
           1:[2,3],
           2:[4,5],
           3:[6,7],
           4:[],
           5:[],
           6:[],
           7:[]
        }

def dfs(graph,root):
    stack=[]
    visited=set()

    stack.append(root)
    output.append(str(root))
    visited.add(root)

    while not(stack==[]):
        for item in graph[root]:

            if item not in visited:
                stack.append(item)
                visited.add(item)
                output.append(str(item))

            if set(graph[item]).union(visited)==visited: …
Run Code Online (Sandbox Code Playgroud)

python algorithm

0
推荐指数
1
解决办法
2422
查看次数

Prim的C++ STL错误算法实现?

我正在尝试使用STL在C++中实现Prim的MST算法.

但是对于下面的程序,它似乎进入了一个无限循环.然后退出并出错.

Prim的MST算法的伪代码;

在此输入图像描述

我的代码:

#include<algorithm>
#include<vector>
#include<iostream>
#include<queue>
using namespace std;

typedef vector<int>         vi;
typedef pair<int,int>       ii;
typedef vector<ii>          vii;

#define REP(i,a,b)  for(int i=int(a);i<b;i++)
#define TRvii(c,it) for(vii::iterator it=(c).begin();it!=(c).end();it++)

#define INF 2000000000

void Prims(int V, int s, vector<vii> &AdjList)
{
    vector<int> dist(V,INF);
    dist[s] = 0;
    priority_queue<ii,vector<ii>,greater<ii> > pq; 
    pq.push(ii(0,s));

    REP(i,1,V) pq.push(ii(i,INF));

    bool inPriorityQueue[V];
    REP(i,0,V) inPriorityQueue[i] = true;

    while(!pq.empty())
    {
        ii top = pq.top(); pq.pop();
        int d = top.first,u = top.second;

        inPriorityQueue[u] = false;

        TRvii(AdjList[u],it)
        {
            int v = it->first, weight_u_v = …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm stl graph prims-algorithm

0
推荐指数
1
解决办法
1117
查看次数

标签 统计

algorithm ×2

c++ ×1

graph ×1

prims-algorithm ×1

python ×1

stl ×1