DenseGraph迭代器中index设为0

来源:7-3 相邻结点迭代器

慕雪菜狗

2022-02-08

波波老师好,我将DenseGraph迭代器中index设为0和-1分别测试了两次发现结果其实没有变化。请问这是一个偶然想象还是,设置为0和-1都可以其实。

class adjIterator
	{
	public:
		adjIterator(denseGraph &graph, int v) :m_G(graph)
		{
			m_nnode = v;
			m_nindex = 0; //-1
		}
		int begin()
		{
			m_nindex = 0; //-1
			return next();
		}
		int next()
		{
			for (m_nindex++; m_nindex < m_G.getV(); m_nindex++)
			{
				if (m_G.m_vecg[m_nnode][m_nindex])
				{
					return m_nindex;
				}
			}
			return -1;
		}
写回答

1回答

liuyubobobo

2022-02-08

初始需要是 -1。因为在 begin() 中会调用 next,在 next 中 m_nindex 会直接 ++。初始是 -1 才能保证 m_nindex 是从 0 开始查看的,否则将跳过 0,从 1 开始查看。


继续加油!:)

0
3
慕雪菜狗
回复
liuyubobobo
我的测试用例就是咱们课程中使用的两个testG1.txt和testG2.txt文件。对,应该是您说的不需要查看某个点和0的联通情况这个问题(其实还是问题没有触及),感谢波波老师啊。
2022-02-09
共3条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11186 学习 · 1614 问题

查看课程