第五次作业——05图

1.本周学习总结

1.思维导图

2.谈谈你对图结构的认识及学习体会。

图结构类似于数,只不过各个节点在空间上相关联。在算法上思路非常多样,虽然可以在逻辑上明确,想要用代码去实现挺难的。

2.PTA实验作业(6分)

2.1.题目1:7-3 六度空间

2.1.1设计思路

创建队列q,t记录节点所在层数,number记录与i距离不超过6的节点个数
    i先进栈
    置visited[i]=1
    while队列不为空
        令temp=出队节点
        遍历temp所连接的节点
            当该节点没有遍历过
                 把该节点入队列
                         number++
         如果遍历到的节点在第六层,返回所得的number值

2.1.2代码截图

2.1.3本题PTA提交列表说明。

  • 出现段错误,数据不够大。
  • 混用了BFS和DFS,导致部分正确。

2.2 题目2:7-1 图着色问题

2.2.1设计思路

int map[maxn][maxn],judge[maxn][maxn];
int color[maxn],tong[maxn];
int n,m,k 存放顶点数、边数、以及颜色数
int main()
{
	输入数据 
	init();
	for(int i = 0; i < m; i ++)
	{
		输入长宽,得到矩阵 
		scanf("%d %d",&x,&y);
		map[x][y] = map[y][x] = 1;
	}

		for(int i = 0; i < maxn; i ++)
		{
			if(tong[i])
				flag++;
			else
				返回
		}
		int 计数器 = 0;
		如恰好等于染色数目
		 否
		else if(!m)
		 是
		else 
		{
			for(int i = 1; i <= n; i ++)
			{
				for(int j = i + 1; j <= n; j ++)
			{
 if(map[i][j]!=maxn&&color[i]!=color[j])
 计数器 ++;
 else if(map[i][j]==maxn)
 到达边界,重新开始循环 
 else if(map[i][j]!=maxn&&color[i]==color[j])
		{	
	返回
		}
 if(index == -1) 返回
 if(index == m)是
 else否

2.2.2代码截图

2.2.3本题PTA提交列表说明.

2.3 题目3 7-4 公路村村通

2.3.1设计思路

void 普里姆算法 
	int cnt=1, Totalcost=0;
	for(int i=1; i<=N; i++)
		parent[i]=s; 记录父节点 路径 
		dist[i]=C[s][i];
	
	parent[s]=-1;
	dist[s]=0;
	int v;
	while(1){
		v=findMin();
		if(v==-1)break;
		Totalcost+=dist[v];
		cnt++;
		收录后dist的值要变为0,表明该结点v已被收录 

	if 如果所有结点都收录完毕,则输出总费用 
	   否则,则说明有些该图里面有回路 
	
  scanf("%d%d", &N, &M);
	初始化各边 
   for(int i=1; i<=M; i++){
		scanF三个正整数
		C[a][b]=C[b][a]=c;

2.3.2代码截图

2.3.3本题PTA提交列表说明.

3、上机考试错题及处理办法

3.1.截图错题代码

3.2 错的原因及处理方法

  • 目前还没有找到原因
posted on 2019-06-03 19:51  Cosmosss  阅读(164)  评论(0编辑  收藏  举报