算法导论 第22章 22.1-4
来源:互联网 发布:北京渠道网络怎么样 编辑:程序博客网 时间:2024/05/20 18:20
#include<iostream>using namespace std;typedef struct Gnode{int index;struct Gnode *next;}Gnode;int N,M;//N表示顶点,M表示边int main(){scanf("%d %d",&N,&M);int i,j;bool *visited=new bool[N];Gnode *G=new Gnode[N];for(i=0;i<N;i++){G[i].index=i;G[i].next=NULL;visited[i]=false;}int a,b;for(i=0;i<M;i++){scanf("%d %d",&a,&b);if(a==b)continue;Gnode *temp=&G[a];while(temp->next!=NULL)temp=temp->next;Gnode *temp2=new Gnode;temp2->index=b;temp2->next=NULL;temp->next=temp2;temp2=NULL;temp2=new Gnode;temp2->index=a;temp2->next=NULL;temp=&G[b];while(temp->next!=NULL)temp=temp->next;temp->next=temp2;}for(i=0;i<N;i++){visited[G[i].index]=true;Gnode *temp=&G[i];while(temp->next!=NULL){Gnode *temp1=temp->next;if(visited[temp1->index]){temp->next=temp1->next;free(temp1);}else{visited[temp1->index]=true;temp=temp1;}}temp=&G[i];while(temp!=NULL){visited[temp->index]=false;temp=temp->next;}}for(i=0;i<N;i++){printf("%d",G[i].index);Gnode *temp=&G[i];while(temp->next!=NULL){temp=temp->next;printf(" -> %d",temp->index);}printf(" -> ^\n");}return 0;}
测试数据:
4 12
0 0
0 1
0 1
0 1
0 2
1 2
1 2
2 1
2 3
2 3
2 3
3 2
0 0
- 算法导论 第22章 22.1-4
- 算法导论 第22章 22.1-3
- 算法导论 第22章 22.1-5
- 算法导论-第4章
- 《算法导论》笔记 第22章 22.1 图的表示
- 算法导论 第22章 22.2-7
- 算法导论 第22章 22.2-8
- 算法导论第4章 分治
- 算法导论第4章习题解析
- 算法导论第3章
- 算法导论-第1章
- 算法导论-第2章
- 算法导论-第3章
- 算法导论-第5章
- 算法导论-第6章
- 算法导论-第7章
- 算法导论-第8章
- 算法导论-第9章
- 使用git clone出现SSL routines:SSL3_GET_SERVER_CERTIFICATE错误的一种解决办法
- CSS利用a:hover和background-position实现鼠标指向更改图片
- js的一些问题(二)
- 20160415
- Java线程详解
- 算法导论 第22章 22.1-4
- 【杭电oj】1872 - 稳定排序(结构体排序)
- Android实现简单的自定义ListView
- log4j入门教程
- 页面性能优化
- while (getchar() != '\n')
- 数据库(一):概述
- 揭秘微信红包架构、抢红包算法和高并发和降级方案
- Map很多Key-Value对应是可以此来处理!