#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);
}

C语言数据结构无向图的更多相关文章

  1. C语言数据结构与算法之深度、广度优先搜索

    一.深度优先搜索(Depth-First-Search 简称:DFS) 1.1 遍历过程: (1)从图中某个顶点v出发,访问v. (2)找出刚才第一个被顶点访问的邻接点.访问该顶点.以这个顶点为新的顶 ...

  2. 读谭浩强C语言数据结构有感(1)

    1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...

  3. C语言数据结构----栈与递归

    本节主要说程序中的栈函数栈的关系以及栈和递归算法的关系. 一.函数调用时的栈 1.程序调用时的栈是也就是平时所说的函数栈是数据结构的一种应用,函数调用栈一般是从搞地质向低地址增长的,栈顶为内存的低地址 ...

  4. 第二章 R语言数据结构

    R语言存储数据的结构包括:标量.向量.矩阵.数组.数据框和列表:可以处理的数据类型包括:数值型.字符型.逻辑型.复数型和原生型. 数据结构 向量 向量是用来存储数值型.字符型或逻辑型数据的一维数组.单 ...

  5. C语言---数据结构(内建,数组,自定义)

    数组是一组有序数据的集合,每个元素都属于同一个数据类型. 一维数组的定义: 类型符  数组名[常量表达式] 常量表达式中,可以包括常量和符号常量,int a[3+5]是合法的.但是不能包含int a[ ...

  6. C语言数据结构之图的基本操作

    本博文是是博主在学习数据结构图的这一章知识时做的一些总结,代码运行环境:visual studio2017 纯C语言 ,当然掌握了方法,你也可以试着用其它的语言来实现同样的功能. 下面的程序主要实现了 ...

  7. C语言数据结构之二叉树的实现

    本篇博文是博主在学习C语言算法与数据结构的一些应用代码实例,给出了以二叉链表的形式实现二叉树的相关操作.如创建,遍历(先序,中序后序遍历),求树的深度,树的叶子节点数,左右兄弟,父节点. 代码清单如下 ...

  8. [C语言] 数据结构-预备知识指针

    所有的伟大源于一个勇敢的开始 数据结构预备知识 指针 1.指针:是C语言的灵魂,指针=地址 地址:内存单元的编号 指针变量:存放内存单元地址的变量 int *p;//p是指针变量,int *表示该p变 ...

  9. [C语言] 数据结构-衡量算法的标准

    1.衡量算法的标准 算法 解题的方法和步骤 衡量算法的标准 1.时间复杂度 大概程序要执行的次数,而非执行的时间,不同的机器运行时间肯定不一样. 2.空间复杂度 算法执行过程中大概所占用的最大内存 3 ...

随机推荐

  1. Minio 集群扩容存储空间,配合nginx 负载反向代理后端minio 集群服务器,提升高可用性

    环境:Centos  7 软件:minio,Etcd 需求:通过联盟两个集群实例,实现水平扩容存储空间问题: 服务器使用阿里云,一共4台服务器(官方说明最好4台服务器做分布式,测试节省服务器所以我们使 ...

  2. linux下查看系统版本

    工作中我们会遇到安装软件需要知道linux是什么发行版本,话不多话上干货(按照我认为常用排序) 1. lsb_release -a 名词解释:LSB (Linux Standard Base) # 如 ...

  3. eclipse操作快捷键

    Eclipse最全快捷键,熟悉快捷键可以帮助开发事半功倍,节省更多的时间来用于做有意义的事情. Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ ...

  4. 【转载】oracle的安装和配置

    转自: https://blog.csdn.net/weixin_40364885/article/details/80787472 一.概念 oracle在使用的时候时是不收费的,如果你要在工作中来 ...

  5. 内置函数---eval、exec、compile

    eval() 将字符串类型的代码执行并返回结果 print(eval('1+2+3+4')) exec()将自字符串类型的代码执行 print(exec("1+2+3+4")) e ...

  6. DRF之restful规范、Postman接口测试

    一. DRF简介 Django REST框架是一个功能强大且灵活的工具包,用于构建Web API. 使用REST框架的一些原因: 该网站可浏览API是你的开发人员一个巨大的可用性胜利. 身份验证策略包 ...

  7. POJ1523 Tarjan求割点以及删除割点之后强连通分量的数量

    题目链接:http://poj.org/problem?id=1523 SPF:A Single Point of Failure也就是割点(一个点导致网络之间的不连通),由于给出的图是无向图,所以只 ...

  8. 题解 SP2916 【GSS5 - Can you answer these queries V】

    前言 最近沉迷于数据结构,感觉数据结构很有意思. 正文 分析 先来分类讨论一下 1. \(x2<y1\) 如果 \(y1<x2\) 的话,答案 \(=\max \limits_{ y1 \ ...

  9. JRebel 破解使用

    步骤1:生成一个GUID:在线生成GUID地址 步骤2: 根据反向代理服务器地址拼接激活地址 服务器地址: https://jrebel.qekang.com/{GUID} 如果失效刷新GUID替换就 ...

  10. Arcgis连接SQL Server提示试图使用不支持的旧版SQL Server客户端通信软件进行连接

    一般提示这种错误的是arcgis服务区和SQL server服务器不在同一台电脑上,但在同一个局域网. 遇到这种问题是arcgis 服务器客户端连接SQL server数据库有问题,要么是客户端没有安 ...