图十字链表并求度c语言,利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现...
#include
#include
#include
/*
利用十字链表存储有向图,可用于同时查找某个顶点的出度与入度;
*/
typedef struct edge{//顶点表
int headvex,tailvex;//headvex弧的七点在顶点表中的下标,tailvex是边的重点在顶点表中的下标
edge *headlink,*taillink;//headlink指向与边相同起点的边,taillink指向与边相同终点的边
}Edge;
typedef struct vex{//边表
int data;//顶点表数据
Edge *firstin,*firstout;//firstin表示指向第一个入边,firstout指向第一个出边
}Vex;
typedef struct vexedge{
Vex ve[100];
int vexnum,edgenum;
}Vexedge;
//创建表
void create(Vexedge *v){
Edge *e;
int i,j,k;
printf("请输入顶点个数与边的条数:");
scanf("%d%d",&v->vexnum,&v->edgenum);
for(i=0;ivexnum;i++){//初始化顶点表
printf("请输入顶点的值:");
scanf("%d",&v->ve[i].data);
v->ve[i].data=getchar();
v->ve[i].firstin=NULL;
v->ve[i].firstout=NULL;
}
for(k=0;kedgenum;k++){//初始化边表
printf("请输入边的顶点坐标");
scanf("%d%d",&i,&j);
e=(Edge *)malloc(sizeof(Edge));
e->headvex=i;
e->tailvex=j;
e->headlink=v->ve[i].firstout;
e->taillink=v->ve[j].firstin;
v->ve[i].firstout=e;
v->ve[j].firstin=e;
}
}
void degree(int n,Vexedge v){
int sumin=0,sumout=0;
Edge *e1,*e2;
e2=v.ve[n].firstout;
e1=v.ve[n].firstin;
while(e1){
sumin++;
e1=e1->taillink;
}
while(e2){
sumout++;
e2=e2->headlink;
}
printf("出度为:%d 入度为:%d",sumout,sumin);
}
int main(){
Vexedge v;
int m;
create(&v);
printf("请输入你想要查询的顶点:");
scanf("%d",&m);
degree(m,v);
getch();
return 0;
}
原文:http://www.cnblogs.com/lin0/p/6502451.html
图十字链表并求度c语言,利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现...相关推荐
- c语言建立并存储树,利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现...
#include #include #include /* 利用十字链表存储有向图,可用于同时查找某个顶点的出度与入度: */ typedef struct edge {//顶点表 int headv ...
- C语言基于单链表的词典软件
C语言基于单链表的词典软件 实验1: 日期:2022-10-4 类型:设计型 题目:基于单链表的词典软件 内容: 利用单链表存储词典,可以实现从文件中加载数据.查询单词.添加词条.删除词条.将词典保存 ...
- 图的邻接矩阵表示法及顶点入度、出度的计算方法
设图(graph)的结构为: 下面,我们来建立这个图, 并求出各个顶点的入度和出度,程序如下: #include <iostream> #define MAX_VERTEX 20 // 最 ...
- 图十字链表并求度c语言,第5章_西安电子科技大学出版社:算法与数据结构-C语言描述(樊希平)_doc_大学课件预览_高等教育资讯网...
第5章 数组和广义表要点: 1.掌握数组元素存储位置的换算: 2.了解特殊矩阵地存储方法和元素存储位置计算: 3.了解广义表的长度.深度.head.tail等概念和操作和存储结构. 教材习题解答: 5 ...
- 用c语言实现单链表的初始化,建表,查找,求长度,插入,删除等操作,【YTU+2430+C语言习题+链表建立+插入+删除+输(5)...
的打印.判断链表是否为空.计算链表长度.插入节点.删除节点.删除整个链表.(2) 线性表adt顺序存储实现中的创建.查找.插入和删除等基本操作及相关算法,线性表adt链式存储实现中单链表.循环链表和双 ...
- 蓝桥杯-c语言 打印十字图
打印十字图 题目描述: 问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$ ...
- (c语言)十字链表初始化、删除
十字链表相关定义如下: typedef int ElemType;// 非零元素结点结构 typedef struct OLNode {int row,col;ElemType value;struc ...
- 数据结构(六):图的概念、存储方式、基本操作、最小生成树、最短路径、有向无环图、关键路径 | Prim、Kruskal算法 | BFS、Dijkstra、Floyd算法 | 拓扑排序 | 求关键路径
文章目录 第六章 图 一.图 (一)图的定义 (二)图逻辑结构的应用 (三)无向图.有向图 (四)简单图.多重图 (五)顶点的度.入度.出度 (六)顶点-顶点的关系描述 (七)连通图.强连通图 (八) ...
- TypeScript算法专题 - blog1.基于TypeScript语言的单链表实现
TypeScript算法专题 - 基于TypeScript语言的单链表实现 李俊才 CSDN:jcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.n ...
最新文章
- Java项目:生活旅行分享平台(java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql)
- Spring对Hibernate事务管理
- 华为手机记事本导出_深夜浅谈怎样用一部手机做电影解说?
- C# 调用 *.sql 文件
- C语言2020年作业,2020年c语言上机报告范文【四篇】
- 给定一个字符串,求第一个不重复的字符
- MINI2440 TD35 P35触摸屏不能使用? 让我们来把一线触控改四线触控
- php显示控制器不存在,解决ThinkPHP6提示控制器不存在问题
- 狭义相对论从入门到入土(建议初一及以上)
- 重复一下:关于Flash停止支持后Chrome如何启用过期插件
- 盒须图(Boxplot)
- 冯扬文:船用燃料油价格大涨对我省航运企业的影响
- Android音视频——基础介绍
- MiddleBury与SceneFlow 数据集相机参数与pfm文件解析
- 常用dos命令(六)--REN命令
- MPC车辆轨迹跟踪----理论推导
- 无人机介绍以及测评推荐
- rol 循环左移 计算_第四周 算术运算、逻辑运算与移位操作指令
- 遗传算法例题(题目和解答以及Matlab代码)
- 电视剧《爱情公寓》分集剧情介绍
热门文章
- R语言使用pwr包的pwr.f2.test函数对线性回归模型进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
- R语言ggplot2可视化使用ggplot2包patchwork包在可视化结果(右上角)中插入logo图片
- pandas使用append函数在dataframe上纵向合并数据实战:多个dataframe合并、合并series左右dataframe的一样、合并字典数据作为dataframe的行
- R语言dplyr包filter函数通过逻辑条件过滤数据实战
- 机器学习数据预处理之缺失值:众数(mode)填充
- python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题
- 使用KNN模型进行多标签分类实战(Multilabel Classification)
- IBM Bluemix云计算大会见闻
- SPPNet网络结构
- android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键