【实验题目】
生成两个随机的图,一个有向图一个无向图。有向图两千条边左右,无向图一千条边左右,边的数量是大概的。100个顶点。要求能算出每个顶点的度。要求每次图是随机生成的,并且有良好的结构。今后的实验都基于这个图结构。任意语言和环境。建议链表描述。
然后基于这个图实现一个广度优先搜索。
【参考文献】
C++中的几个常用结构:
set: http://blog.csdn.net/wangran51/article/details/8836160
vector: http://blog.csdn.net/hancunai0017/article/details/7032383
pair: http://blog.csdn.net/xywlpo/article/details/6458867
rand()和srand()的用法:http://blog.csdn.net/peixuan197/article/details/48084843 注意, rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。
产生一定范围的随机数:
通用公式:a + rand() % n ;其中的a是起始值,n是整数的范围
要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。
queue: http://www.cnblogs.com/hdk1993/p/5809180.html
【输出】
输出到一个txt文档中,内容包括点数、边数、各个边的两端点、每个顶点的出度和入度(对无向图来说就是顶点的度)