DS树+图综合练习--构建邻接表

题目描述

已知一有向图,构建该图对应的邻接表。邻接表包含数组和单链表两种数据结构,其中每个数组元素也是单链表的头结点,数组元素包含两个属性,属性一是顶点编号info,属性二是指针域next指向与它相连的顶点信息。单链表的每个结点也包含两个属性,属性一是顶点在数组的位置下标,属性二是指针域next指向下一个结点。

输入

1行输入整数t,表示有t个图

2行输入n和k,表示该图有n个顶点和k条弧。

第3行输入n个顶点。

第4行起输入k条弧的起点和终点,连续输入k行

以此类推输入下一个图

输出

输出每个图的邻接表,每行输出格式:数组下标 顶点编号-连接顶点下标-......-^,数组下标从0开始。

具体格式请参考样例数据,每行最后加入“^”表示NULL。

样例输入

1
5 7
A B C D E
A B
A D
A E
B D
C B
C E
E D

样例输出

0 A-1-3-4-^
1 B-3-^
2 C-1-4-^
3 D-^
4 E-3-^
创建一个nodearray来存放头节点 在空间上就是竖的,对每个头节点创建一个nodelist来存放与他相连的节点,在空间上就是水平的。
#include<iostream>
using namespace std;
struct Node
{char name;int info;Node *next;
};int main()
{int t;cin>>t;while(t--){int n,k,i,j;cin>>n>>k;Node *nodearray[n];Node *nodelist[n];for(i=0;i<n;i++){nodearray[i]=new Node();nodelist[i]=new Node();cin>>nodearray[i]->name;nodearray[i]->info=i;nodelist[i]=nodearray[i];}            for(i=0;i<k;i++){char ch1,ch2;cin>>ch1>>ch2;int info1,info2;for(j=0;j<n;j++){if(nodearray[j]->name==ch1)info1=nodearray[j]->info;if(nodearray[j]->name==ch2)info2=nodearray[j]->info;}Node *node=new Node();node->name=ch2;node->info=info2;node->next=NULL;nodelist[info1]->next=node;nodelist[info1]=node;}for(i=0;i<n;i++){cout<<i<<" ";Node *p=nodearray[i];cout<<p->name<<"-";p=p->next;while(p){cout<<p->info<<"-";p=p->next;}cout<<"^"<<endl;}}
}

 

转载于:https://www.cnblogs.com/Liu269393/p/10222599.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql datetime 间隔,MySQL datetime默认时间间隔

Is it possible to add to a default time with NOW(), 10 minutes?Ive tried something like that:CREATE TABLE table1 (date DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE));However, it doesnt work.解决方案I dont think you can do this.The DEFAULT …

golang mysql 崩溃_mysql连接问题,goruntime里执行总是出错,程序一直崩溃

初学golang&#xff0c;尝试写一个程序&#xff0c;但是在mysql操作时遇到了问题~看网上文章&#xff0c;推荐mysql直接创建一个db全局变量&#xff0c;然后连接一次&#xff0c;以后使用到直接用这个db&#xff0c;我按照这样的方法&#xff0c;然后进行操作&#xff0c;可是程…

牛客网——点菜问题

题目描述 北大网络实验室经常有活动需要叫外卖&#xff0c;但是每次叫外卖的报销经费的总额最大为C元&#xff0c;有N种菜可以点&#xff0c;经过长时间的点菜&#xff0c;网络实验室对于每种菜i都有一个量化的评价分数&#xff08;表示这个菜可口程度&#xff09;&#xff0c;…

OGR示例:写shp,求面与面的交和差操作

编译命令&#xff1a;g main.cpp -lgdal 调用命令&#xff1a;./a.out 输出shp名称 操作选项 注释&#xff1a;操作选项&#xff08;1&#xff1a;多边形A - 多边形B&#xff0c;2&#xff1a;B - A&#xff0c;3&#xff1a;A和B的交集部分&#xff09; #include "ogr…

Spring Boot和Thymeleaf:重新加载模板和静态资源,而无需重新启动应用程序

Thymeleaf是围绕自然模板的概念设计的&#xff0c;该模板允许进行静态原型制作&#xff1a;模板逻辑不会影响用作原型的模板。 尽管这是一项很棒的技术&#xff0c;但您可能还希望在运行的Spring Boot应用程序中查看结果&#xff0c;而不必每次更改Thymeleaf视图时都重新启动服…

写cookies注意事项

在调试模式下是无法写到cookie的&#xff0c;因为cookie需要写到域名下&#xff0c;并且需要写的域名和运行的域名一致才能写入。同样在读取cookie时也只能读取到当前域名的cookie&#xff0c;无法读取其他域名的cookie。 比如下面用jquery表示在baidu.com的域名下写入cookie&a…

mysql记录当前表数据的数据条数据类型_mysql的表的操作 数据类型

一 数据类型1 数字&#xff1a;整型&#xff1a;tinyint int bigint小数&#xff1a;float:在位数较短的情况下不精准double:在位数比较长的情况下不精准1 数字整型&#xff1a;tinyint int big小数&#xff1a;float:在位数比较短的情况下不精准double:在位数比较长的…

C++中的继承与虚函数各种概念

虚继承与一般继承 虚继承和一般的继承不同&#xff0c;一般的继承&#xff0c;在目前大多数的C编译器实现的对象模型中&#xff0c;派生类对象会直接包含基类对象的字段。而虚继承的情况&#xff0c;派生类对象不会直接包含基类对象的字段&#xff0c;而是通过一个间接的指针去…

中国科学院大学数学院本科生教材

中国科学院大学数学科学学院本科生教材&#xff08;不完全统计&#xff09; 注&#xff1a;不同的任课老师使用不太一样的教材&#xff0c;仅供参考。 一年级&#xff1a; 微积分I-A&#xff1a;《数学分析&#xff08;第4版&#xff09;》第1卷&#xff0c;卓里奇&#xff0c;…

sqlite mysql php_PHP实现的简单操作SQLite数据库类与用法示例

本文实例讲述了PHP实现的简单操作SQLite数据库类与用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;SQLite是一款轻型的数据库&#xff0c;是遵守ACID的关联式数据库管理系统&#xff0c;它的设计目标是嵌入式的&#xff0c;而且目前已经在很多嵌入式产品中使用了它…

Win7下WinDbg开启Local Kernel Debug调试

问题&#xff1a;在Win7 64bit系统中用管理员权限打开WinDbg开启Local Kernel Debug时报错&#xff1a; The system does not support local kernel debugging. Local kernel debugging requires Windows XP, Administrative privileges, and is not supported by WOW64. Only …

idea 不能及时编译_您是否能及时编译?

idea 不能及时编译还记得上次被C开发人员嘲笑的时候吗&#xff1f; Java如此繁琐&#xff0c;以至于他们甚至都不会考虑使用这种语言&#xff1f; 在许多方面&#xff0c;这一概念仍然成立。 但是对于典型的用法&#xff08;在大型企业的骨干中&#xff09;&#xff0c;Java性…

接口开发-导读

接下来的这个系列&#xff0c;完全针对“APP接口”开发进行&#xff0c;所以&#xff0c;希望你有一定的Java开发基础、以及一定的接口交互经验。 思来想去&#xff0c;决定按照下面的提纲进行 1. 基于SpringBoot创建基础框架&#xff1b; 2. 集成数据库操作&#xff08;mybati…

安装mysql显示有5.0_安装MySQL5.0时到如图这一步提示出错了,~

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

WinDbg配置和使用基础

WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具&#xff0c;可以用于Kernel模式调试和用户模式调试&#xff0c;还可以调试Dump文件。 1. WinDbg介绍&#xff1a; Debugging Tools and Symbols: Getting Started http://www.microsoft.com/whdc/devtools/d…

将Wiremock集成到Spring Boot Java Web应用程序中以模拟外部依赖关系

介绍 WireMock是用于基于HTTP的API的模拟服务器。 有些人可能会将其视为服务虚拟化工具或模拟服务器。 它使您能够存根所需的API或其他外部依赖项&#xff0c;以加快本地开发速度。 它支持测试真实API无法可靠产生的极端情况和失败模式。 在模拟单元测试和集成测试中的外部依赖…

windows下node安装

1.首先到node官网进行下载 下载页面中windows版本分两种&#xff0c;这里我们选择.msi进行安装&#xff08;.zip是免安装的&#xff0c;但需要单独配置环境变量使用&#xff09; 2.安装过程如下所示 这里可以更改安装的路径 这里默认会将node和npm加到环境变量中 3.验证安装 安…

tab键的转义字符_Python转义字符及用法

在《Python字符串》一节中我们曾提到过转义字符,就是那些以反斜杠\开头的字符。ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方…

CentOS中通过NAT连接网络

讲正文之前&#xff0c;推荐一个连接&#xff1a;http://wuxinaiaman928.blog.163.com/blog/static/64932144200811911233198/ 里面比较详细的介绍了Vmware中三种不同的连接方式&#xff1a;桥连接&#xff0c;NAT&#xff0c;使用主机网络&#xff0c;有助于理解简单来讲&…

serialport通过usb通讯_IOT串口通讯-RS232/RS485

串口串口是串行接口(serial port)的简称&#xff0c;也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分&#xff0c;包括RS-232-C、RS-422、RS485等…