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);
}
C语言数据结构无向图的更多相关文章
- C语言数据结构与算法之深度、广度优先搜索
一.深度优先搜索(Depth-First-Search 简称:DFS) 1.1 遍历过程: (1)从图中某个顶点v出发,访问v. (2)找出刚才第一个被顶点访问的邻接点.访问该顶点.以这个顶点为新的顶 ...
- 读谭浩强C语言数据结构有感(1)
1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...
- C语言数据结构----栈与递归
本节主要说程序中的栈函数栈的关系以及栈和递归算法的关系. 一.函数调用时的栈 1.程序调用时的栈是也就是平时所说的函数栈是数据结构的一种应用,函数调用栈一般是从搞地质向低地址增长的,栈顶为内存的低地址 ...
- 第二章 R语言数据结构
R语言存储数据的结构包括:标量.向量.矩阵.数组.数据框和列表:可以处理的数据类型包括:数值型.字符型.逻辑型.复数型和原生型. 数据结构 向量 向量是用来存储数值型.字符型或逻辑型数据的一维数组.单 ...
- C语言---数据结构(内建,数组,自定义)
数组是一组有序数据的集合,每个元素都属于同一个数据类型. 一维数组的定义: 类型符 数组名[常量表达式] 常量表达式中,可以包括常量和符号常量,int a[3+5]是合法的.但是不能包含int a[ ...
- C语言数据结构之图的基本操作
本博文是是博主在学习数据结构图的这一章知识时做的一些总结,代码运行环境:visual studio2017 纯C语言 ,当然掌握了方法,你也可以试着用其它的语言来实现同样的功能. 下面的程序主要实现了 ...
- C语言数据结构之二叉树的实现
本篇博文是博主在学习C语言算法与数据结构的一些应用代码实例,给出了以二叉链表的形式实现二叉树的相关操作.如创建,遍历(先序,中序后序遍历),求树的深度,树的叶子节点数,左右兄弟,父节点. 代码清单如下 ...
- [C语言] 数据结构-预备知识指针
所有的伟大源于一个勇敢的开始 数据结构预备知识 指针 1.指针:是C语言的灵魂,指针=地址 地址:内存单元的编号 指针变量:存放内存单元地址的变量 int *p;//p是指针变量,int *表示该p变 ...
- [C语言] 数据结构-衡量算法的标准
1.衡量算法的标准 算法 解题的方法和步骤 衡量算法的标准 1.时间复杂度 大概程序要执行的次数,而非执行的时间,不同的机器运行时间肯定不一样. 2.空间复杂度 算法执行过程中大概所占用的最大内存 3 ...
随机推荐
- python基础学习day03
基础数据类型总览 why:机器无法像人一样分编各种类型 int(数字) str(字符串)作用:存储少量信息. '12','我和你','qw' bool值 作用:判断真假 True False list ...
- 改变 C/C++ 控制台程序的输出颜色和样式
我们经常可以看见Linux自带终端下的许多程序都输出了不同颜色和底纹的字体.最近也想要自己实现一下这种效果,方法是在输出流中插入占位符\033[***. 我从网上收集了一些常用的控制语句,并用以下代码 ...
- ExifPro Mod 3.0 64位绿色中文版
EXIFPro 是一个优秀的图像查看, 处理及管理工具, 使用 VC++ 开发, 小巧快速, 支持查看丰富的 EXIF 信息, 非常适用于查看您的 RAW 数字照片和其他常规图像.EXIFPro V1 ...
- 【Weiss】【第03章】练习3.2
[练习3.2] 给你一个链表L和另一个链表P,它们包含以升序排列的整数.操作printlots(L,P)将打印L中那些由P所指定的位置上的元素. 例如,如果p=1,3,4,6,那么,L的第一.第三.第 ...
- Centos单机部署Elasticsearch7.2集群
配置node0 # ======================== Elasticsearch Configuration ========================= # # NOTE: E ...
- tpyboard v202 测试tcp通讯,i2c的oled程序,呼吸灯源码,希望对大家有所帮助
1.下载到板子里的main.py代码如果需要驱动oled的,可以参考我上面那篇文章import time, mathimport machineimport network# from ssd1306 ...
- Python python 五种数据类型--字典
# 定义一个字典 var1 = {'a':20,'b':40}; var2 = dict(); print(type(var1)) print(type(var2)) # 长度 length = le ...
- php基本数据类型解说
一.简介: php语言是弱类型语言,声明变量的时候不需要指定数据类型.但每个数值都是有数据类型的.PHP共有九种数据类型. php基本数据类型共有四种:boolean(布尔型),integer(整型) ...
- iOS App的启动过程
一.mach-O Executable 可执行文件 Dylib 动态库 Bundle 无法被连接的动态库,只能通过 dlopen() 加载 Image 指的是 Executable,Dylib 或者 ...
- VS2015 远程调试:Remote Debugger
一.关于Remote Debugger 使用VS远程调试器Remote Debugger,我们可以调试部署在不同机器上的应用程序,如桌面应用程序和Asp.Net应用程序. 二.Remote Debug ...