#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语言实现...相关推荐

  1. c语言建立并存储树,利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现...

    #include #include #include /* 利用十字链表存储有向图,可用于同时查找某个顶点的出度与入度: */ typedef struct edge {//顶点表 int headv ...

  2. C语言基于单链表的词典软件

    C语言基于单链表的词典软件 实验1: 日期:2022-10-4 类型:设计型 题目:基于单链表的词典软件 内容: 利用单链表存储词典,可以实现从文件中加载数据.查询单词.添加词条.删除词条.将词典保存 ...

  3. 图的邻接矩阵表示法及顶点入度、出度的计算方法

    设图(graph)的结构为: 下面,我们来建立这个图, 并求出各个顶点的入度和出度,程序如下: #include <iostream> #define MAX_VERTEX 20 // 最 ...

  4. 图十字链表并求度c语言,第5章_西安电子科技大学出版社:算法与数据结构-C语言描述(樊希平)_doc_大学课件预览_高等教育资讯网...

    第5章 数组和广义表要点: 1.掌握数组元素存储位置的换算: 2.了解特殊矩阵地存储方法和元素存储位置计算: 3.了解广义表的长度.深度.head.tail等概念和操作和存储结构. 教材习题解答: 5 ...

  5. 用c语言实现单链表的初始化,建表,查找,求长度,插入,删除等操作,【YTU+2430+C语言习题+链表建立+插入+删除+输(5)...

    的打印.判断链表是否为空.计算链表长度.插入节点.删除节点.删除整个链表.(2) 线性表adt顺序存储实现中的创建.查找.插入和删除等基本操作及相关算法,线性表adt链式存储实现中单链表.循环链表和双 ...

  6. 蓝桥杯-c语言 打印十字图

    打印十字图 题目描述: 问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$ ...

  7. (c语言)十字链表初始化、删除

    十字链表相关定义如下: typedef int ElemType;// 非零元素结点结构 typedef struct OLNode {int row,col;ElemType value;struc ...

  8. 数据结构(六):图的概念、存储方式、基本操作、最小生成树、最短路径、有向无环图、关键路径 | Prim、Kruskal算法 | BFS、Dijkstra、Floyd算法 | 拓扑排序 | 求关键路径

    文章目录 第六章 图 一.图 (一)图的定义 (二)图逻辑结构的应用 (三)无向图.有向图 (四)简单图.多重图 (五)顶点的度.入度.出度 (六)顶点-顶点的关系描述 (七)连通图.强连通图 (八) ...

  9. TypeScript算法专题 - blog1.基于TypeScript语言的单链表实现

    TypeScript算法专题 - 基于TypeScript语言的单链表实现 李俊才 CSDN:jcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.n ...

最新文章

  1. Java项目:生活旅行分享平台(java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql)
  2. Spring对Hibernate事务管理
  3. 华为手机记事本导出_深夜浅谈怎样用一部手机做电影解说?
  4. C# 调用 *.sql 文件
  5. C语言2020年作业,2020年c语言上机报告范文【四篇】
  6. 给定一个字符串,求第一个不重复的字符
  7. MINI2440 TD35 P35触摸屏不能使用? 让我们来把一线触控改四线触控
  8. php显示控制器不存在,解决ThinkPHP6提示控制器不存在问题
  9. 狭义相对论从入门到入土(建议初一及以上)
  10. 重复一下:关于Flash停止支持后Chrome如何启用过期插件
  11. 盒须图(Boxplot)
  12. 冯扬文:船用燃料油价格大涨对我省航运企业的影响
  13. Android音视频——基础介绍
  14. MiddleBury与SceneFlow 数据集相机参数与pfm文件解析
  15. 常用dos命令(六)--REN命令
  16. MPC车辆轨迹跟踪----理论推导
  17. 无人机介绍以及测评推荐
  18. rol 循环左移 计算_第四周 算术运算、逻辑运算与移位操作指令
  19. 遗传算法例题(题目和解答以及Matlab代码)
  20. 电视剧《爱情公寓》分集剧情介绍

热门文章

  1. R语言使用pwr包的pwr.f2.test函数对线性回归模型进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
  2. R语言ggplot2可视化使用ggplot2包patchwork包在可视化结果(右上角)中插入logo图片
  3. pandas使用append函数在dataframe上纵向合并数据实战:多个dataframe合并、合并series左右dataframe的一样、合并字典数据作为dataframe的行
  4. R语言dplyr包filter函数通过逻辑条件过滤数据实战
  5. 机器学习数据预处理之缺失值:众数(mode)填充
  6. python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题
  7. 使用KNN模型进行多标签分类实战(Multilabel Classification)
  8. IBM Bluemix云计算大会见闻
  9. SPPNet网络结构
  10. android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键