C语言数据结构无向图
#include<stdio.h>
#include<stdlib.h>
#define num 8
struct nearnode{
int order;
nearnode* pnext;
};
struct topnode{
char data[20];
nearnode* phead;
};
struct Gra{
topnode top[num];
int topnum;
int sidenum;
};
void create(Gra* gra){
puts("请输入图的弧数\n");
scanf("%d",&gra->sidenum);
gra->topnum = num;
for(int i = 0;i < num;i++){
printf("请输入第%d个定点储存的数据信息\n",i+1);
scanf("%s",gra->top[i].data);
}
for(int i = 0;i < gra->sidenum;i++){
int temp_one;
int temp_two;
printf("请输入第%d条边的起始顶点\n",i+1);
scanf("%d",&temp_one);
printf("请输入第%d条边的终结顶点\n",i+1);
scanf("%d",&temp_two);
nearnode* newnode_one = NULL;
newnode_one = (nearnode*)malloc(sizeof(nearnode));
newnode_one->pnext = NULL;
newnode_one->order = temp_one;
if(gra->top[temp_two].phead == NULL){
gra->top[temp_two].phead = newnode_one;
}
else{
for(;gra->top[temp_two].phead->pnext != NULL;gra->top[temp_two].phead = gra->top[temp_two].phead->pnext);
gra->top[temp_two].phead->pnext = newnode_one;
}
nearnode* newnode_two = NULL;
newnode_two = (nearnode*)malloc(sizeof(nearnode));
newnode_two->pnext = NULL;
newnode_two->order = temp_two;
if(gra->top[temp_one].phead == NULL){
gra->top[temp_one].phead = newnode_two;
}
else{
for(;gra->top[temp_one].phead->pnext != NULL;gra->top[temp_one].phead = gra->top[temp_one].phead->pnext);
gra->top[temp_one].phead->pnext = newnode_two;
}
}
}
void viewer(Gra* gra){
for(int i = 0;i < gra->topnum;i++){
printf("第%d个边结点对应的是%c顶点的信息\n",i+1,i+65);
}
puts("\n\n");
for(int i = 0;i < gra->topnum;i++){
printf("第%d个顶点储存的信息是:%s\n",i+1,gra->top[i].data);
}
puts("\n\n");
for(int i = 0;i < num;i++){
for(;gra->top[i].phead != NULL;gra->top[i].phead = gra->top[i].phead->pnext){
printf("与第%d个顶点相连的边结点的序号为%d\n",i+1,gra->top[i].phead->order);
}
}
}
int main(int argc,char** argv){
Gra* gra = NULL;
gra = (Gra*)malloc(sizeof(Gra));
create(gra);
viewer(gra);
}
最新文章
- objective-c 语法快速过(4)
- BFGS方法
- 转:redis常用命令
- What is Entity Framework?
- ado模版不会自动生成
- Excel操作--使用NPOI导入导出Excel为DataTable
- 关于DISPLAY变量显示问题
- 【HDOJ】3660 Alice and Bob&#39;s Trip
- UVA 10820 - Send a Table 数论 (欧拉函数)
- JAVA中一些需要记录的知识点(进阶部分)&#183;&#183;&#183;持续更新
- MySQL 5.7 在windows下修改max_allowed_packet变量
- System.getProperty()方法获取系统变量
- jmeter+ant+jenkins的自动化接口测试
- UNIX环境高级编程——主线程与子线程的退出关系
- python 脚本自动登陆校园网
- vue-cli 里axios的使用
- 处理程序“AllowAccessJavaScripts”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- 剑指offer(12)数值的整数次方
- mysql学习笔记五 —— MHA
- 实现Servlet容器一
热门文章
- 因为我说:volatile 是轻量级的 synchronized,面试官让我回去等通知!
- CSS样式命名
- 手把手教你用GoEasy实现Websocket IM聊天
- gRPC (1):入门及服务端创建和调用原理
- angualrjs 总结 随记(二)
- snmap弱口令攻击利用
- 【spring springmvc】这里有你想要的SpringMVC的REST风格的四种请求方式
- 【i春秋综合渗透测试】《我很简单,请不要欺负我》
- 图论-BFS-最小高度的树 Minimum Height Trees
- 从 ASP.NET Core 3.1 迁移到 5.0