dkfr.net
当前位置:首页 >> 求大神帮做数据结构作业:使用邻接矩阵或者邻接表... >>

求大神帮做数据结构作业:使用邻接矩阵或者邻接表...

http://blog.csdn.net/column/details/tengweitw.html 这里面有你上面说的代码实现,讲的很详细

答案是o(n+e) 但是邻接表里面不是每个边被储存两次吗,为什么不是n+2e呢? 在大O表示法中O(n+2e)通常应表示为O(n+e)

完整程序如下: # include # define elemtype int const int n=8; //图中的顶点数 const int e=2*n-1; //图中的边数 bool visited[n+1]; //标志访问数组 //定义图的数据结构 class graph { public: elemtype v[n+1]; //存放顶点信息 int arcs[n+...

递归转非递归的常用方法是自己用栈来模拟,比较容易得到的方法是:#include #include #include #include using namespace std;const int maxn = 1000000;vector G[maxn];int e[maxn];bool visit[maxn];void dfs(int u){ visit[u] = true; cout n...

《零基础学算法》这本书里面有现成的源代码程序。具体的请参考该书。

// quee 是线性表 Biao是邻接表 如果Biao[i]直接声明为quee 那么可以去掉.tail 下面大概是算法 具体实现可根据需要修改 for (i=0;ilink=q; }

自己写吧,给个参考: http://hi.baidu.com/%D2%BB%BD%A3%D5%B6%BA%EC%B3%BE/blog/item/0f04ab1e341278f11bd576b2.html

还有逆邻接表,十字链表。不能说那个最好,要在一定条件下讨论

图的邻接表数据类型描述如下: const int N=maxn; // maxn表示图中最大顶点数 const int E=maxe ; // maxe图中最大边数 struct Edge{ int u,v; //边所邻接的两个顶点 int w; //边的权值 int next; //边指针,指向下一条边的内存池地址 }edge[E...

/* 程序1:邻接表的dfs,bfs 其中n是点的个数,m是边的个数,你需要输入m条有向边,如果要无向只需要反过来多加一遍即可。*/#include #include #define MAXM 100000#define MAXN 10000int next[MAXM],first[MAXN],en[MAXM],n,m,flag[MAXN],pd,dl[MA...

网站首页 | 网站地图
All rights reserved Powered by www.dkfr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com