档案网站建设视频,网站建设托管模式,wordpress 搭建查询,国家工程建设标准化网站题目描述 已知一有向图#xff0c;构建该图对应的邻接表。邻接表包含数组和单链表两种数据结构#xff0c;其中每个数组元素也是单链表的头结点#xff0c;数组元素包含两个属性#xff0c;属性一是顶点编号info#xff0c;属性二是指针域next指向与它相连的顶点信息。单…题目描述 已知一有向图构建该图对应的邻接表。邻接表包含数组和单链表两种数据结构其中每个数组元素也是单链表的头结点数组元素包含两个属性属性一是顶点编号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来存放与他相连的节点在空间上就是水平的。 #includeiostream
using namespace std;
struct Node
{char name;int info;Node *next;
};int main()
{int t;cint;while(t--){int n,k,i,j;cinnk;Node *nodearray[n];Node *nodelist[n];for(i0;in;i){nodearray[i]new Node();nodelist[i]new Node();cinnodearray[i]-name;nodearray[i]-infoi;nodelist[i]nodearray[i];} for(i0;ik;i){char ch1,ch2;cinch1ch2;int info1,info2;for(j0;jn;j){if(nodearray[j]-namech1)info1nodearray[j]-info;if(nodearray[j]-namech2)info2nodearray[j]-info;}Node *nodenew Node();node-namech2;node-infoinfo2;node-nextNULL;nodelist[info1]-nextnode;nodelist[info1]node;}for(i0;in;i){couti ;Node *pnodearray[i];coutp-name-;pp-next;while(p){coutp-info-;pp-next;}cout^endl;}}
} 转载于:https://www.cnblogs.com/Liu269393/p/10222599.html