• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
起个名太难了
博客园    首页    新随笔    联系   管理    订阅  订阅
每日日报

邻接表存储实现有向网构建

#include<iostream>
#include<cstdio>
using namespace std;
const int N=1010;
struct arc{
int e;
arc* next;
int w;
};
struct {
int n,m;
char vers[N];
arc arcs[N];
}gra;
int find(char c){
for(int i=0;i<gra.n;i++){
if(gra.vers[i]==c){
return i;
}
}
return -1;
}
void add(int u,int v,int w){
arc* p=new arc();
p->e=v;
p->next=gra.arcs[u].next;
p->w=w;
gra.arcs[u].next=p;
}
void add(char x,char y,int w){
int u=find(x),v=find(y);
if(~u&&~v){
add(u,v,w);
}
else{
cout<<"error";
exit(0);
}
}
int main(){
cin>>gra.n>>gra.m;
if(gra.n==0||gra.n==1&&gra.m>1){
cout<<"error";
return 0;
}
for(int i=0;i<gra.n;i++){
cin>>gra.vers[i];
}
for(int i=0;i<gra.m;i++){
char u,v;
int w;
cin>>u>>v>>w;
add(u,v,w);
}
for(int i=0;i<gra.n;i++){
cout<<gra.vers[i];
arc* p=gra.arcs[i].next;
while(p!=NULL){
cout<<"->"<<p->e<<' '<<p->w;
p=p->next;
}
if(i!=gra.n-1) cout<<endl;
}
return 0;
}

posted on 2021-10-15 19:33  起个名太难了  阅读(37)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3