博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于邻接表的新顶点的增加
阅读量:6818 次
发布时间:2019-06-26

本文共 1568 字,大约阅读时间需要 5 分钟。

基于邻接表的新顶点的增加

发布时间: 2018年11月26日 10:19   时间限制: 1000ms   内存限制: 128M

描述

给定一个无向图,在此无向图中增加一个新顶点。

输入

多组数据,每组m+2行。第一行有两个数字n和m,代表有n个顶点和m条边。顶点编号为1到n。第二行到第m+1行每行有两个数字h和k,代表边依附的两个顶点。第m+2行有一个数字f,代表新插入的顶点编号。当n和m都等于0时,输入结束

输出

每组数据输出n+1行。为增加顶点后的邻接表。每两个数字之间用空格隔开。

样例输入1
3 21 22 342 11 240 0
样例输出1
1 22 3 13 241 22 14
1 #include
2 using namespace std; 3 #define maxn 100 4 5 typedef struct node 6 { 7 int data; 8 struct node *next; 9 }Node;10 11 int main()12 {13 int n, m;14 int x, y, f;15 Node *p;16 Node *V[maxn];17 while (1)18 {19 cin >> n >> m;20 if (n == 0 && m == 0)21 break;22 for (int i = 0; i
data = i;26 V[i]->next = NULL;27 }28 while (m--)29 {30 cin >> x >> y;//标准前插三部曲31 p = new Node;//建节点32 p->data = y;//赋初值33 p->next = V[x]->next;//连后继34 V[x]->next = p;//挂前驱35 p = new Node;//on the contrary36 p->data = x;37 p->next = V[y]->next;38 V[y]->next = p;39 }40 cin>>f;//new node coming 41 for (int i = 1; i <= n; i++)42 {43 cout << V[i]->data;44 p = V[i]->next;45 while (p)46 {47 cout<<" "<
data;48 p = p->next;49 }50 cout << endl;51 }52 cout << f << endl;53 }54 return 0;55 }

 

转载于:https://www.cnblogs.com/wind-chaser/p/10066458.html

你可能感兴趣的文章
Java™ 教程(匿名类)
查看>>
用Promise构造函数来解决地狱回调问题
查看>>
那些让程序员崩溃又想笑的程序命名...
查看>>
[LeetCode] 404. Sum of Left Leaves
查看>>
初探APT 攻击
查看>>
react 使用ant design UI 父组件this.refs无法调用子组件自定的方法
查看>>
dubbo源码解析(三)注册中心——开篇
查看>>
Elasticsearch 参考指南(Index API)
查看>>
Git 使用指南
查看>>
Python爬虫的N种姿势
查看>>
MySQL小实践一:快速插入1000万条数据到MySQL数据库中
查看>>
网络协议 4 - 交换机与 VLAN
查看>>
split splice slice
查看>>
构建静态页面 之 [ 列表 ]
查看>>
函数、函数表达式、作用域、闭包
查看>>
Android 系统开发_技术细节篇 -- 快速点击导致打开两个重复的 Activity
查看>>
三十分钟成为 Contributor | 为 TiKV 添加 built-in 函数
查看>>
webpack4 系列教程: 前言
查看>>
PHP协程
查看>>
区块链技术阅读列表
查看>>