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[];

int vexnum, edgenum;

}Vexedge;

//创建表

void create(Vexedge *v) {

Edge *e;

int i, j, k;

printf("请输入顶点个数与边的条数:");

scanf("%d%d", &v->vexnum, &v->edgenum);

for (i = ; 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 = ; 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 = , sumout = ;

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 ;

}

利用十字链表压缩稀疏矩阵(c++)-- 数据结构

题目: 7-1 稀疏矩阵 (30 分)   如果一个矩阵中,0元素占据了矩阵的大部分,那么这个矩阵称为“稀疏矩阵”.对于稀疏矩阵,传统的二维数组存储方式,会使用大量的内存来存储0,从而浪费大量内存.为 ...

数据结构之---C++语言实现图的十字链表存储表示

近期一直忙着考研复习,非常久都没有更新博客了.今天写一篇数据结构的存储. //有向图的十字链表存储表示 //杨鑫 #include #include

数据结构C语言版 有向图的十字链表存储表示和实现

/*1wangxiaobo@163.com 数据结构C语言版 有向图的十字链表存储表示和实现 P165 编译环境:Dev-C++ 4.9.9.2 */ #include ...

javascript实现数据结构:稀疏矩阵的十字链表存储表示

当矩阵的非零个数和位置在操作过程中变化大时,就不宜采用顺序存储结构来表示三元组的线性表.例如,在作“将矩阵B加到矩阵A上”的操作时,由于非零元的插入或删除将会引起A.data中元素的移动.为此,对这种 ...

利用Arraylist输入学生的成绩,求出平均分和总分。

Console.WriteLine("请输入学生人数:"); int n=int.Parse(Console.ReadLine()); ArrayList arr= new Arr ...

图->存储结构->十字链表

文字描述 十字链表是有向图的另一种链式存储结构. 在十字链表中,对应于有向图中每一条弧有一个结点,对应于每个顶点也有一个结点.这些结点的结构如下所示: 在弧结点中有5个域: 尾域tailvex和头域h ...

[game]十字链表的AOI算法实现

AOI主要有九宫格.灯塔和十字链表的算法实现.本文阐述十字链表的实现和尝试. 1. 基本原理 根据二维地图,将其分成x轴和y轴两个链表.如果是三维地图,则还需要维护多一个z轴的链表.将对象的坐标值按照 ...

链表插入和删除,判断链表是否为空,求链表长度算法的,链表排序算法演示——C语言描述

关于数据结构等的学习,以及学习算法的感想感悟,听了郝斌老师的数据结构课程,其中他也提到了学习数据结构的或者算法的一些个人见解,我觉的很好,对我的帮助也是很大,算法本就是令人头疼的问题,因为自己并没有学 ...

数据结构之---C语言实现广义表头尾链表存储表示

//广义表的头尾链表存储表示 //杨鑫 #include #include #include #in ...

随机推荐

.NET微信通过授权获取用户的基本信息

一.填写授权回调页面的域名 二.引导用户到指定的授权页面 例如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID& ...

xcode8继续愉快的使用插件

https://github.com/inket/update_xcode_plugins https://github.com/fpg1503/MakeXcodeGr8Again xcode8增加了 ...

reStructuredText

reStructuredText 简明教程 060724 17:58 作者: Laurence 邮箱: 2999am@gmail.com ID: Kardinal @ Ubuntu.org.cn论坛 ...

骑士飞行棋 C#代码详解

最近看见一个骑士飞行棋的小游戏代码,感觉这个代码中将大多数C#的基础知识都运用到了,是一个新手检验学习成果的有效方法,特此将这个代码整理一遍.这是一个控制台程序.这是代码下载地址,代码中的注释非常详细 ...

一起啃PRML - 1.1 Example: Polynomial Curve Fitting 多项式曲线拟合

一起啃PRML - 1.1 Example: Polynomial Curve Fitting @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 前言: ...

Install MongoDB on Windows

Overview Use this tutorial to install MongoDB on a Windows systems. PLATFORM SUPPORT Starting in ver ...

JSP 初始化参数

JSP 初始化参数: tomcat启动的时候就会执行那个函数: xml: <?xml version="1.0" encoding="UTF-8"?&gt ...

洛谷 P1032 【字串变换】

感觉这个题用一些常用的stl和string函数会非常简单..(难道就是考这两个的吗? vector>pos//用于变化 map

vue中如何动态的绑定图片,vue中通过data返回图片路径

在项目中遇到需要动态的改变图片路径,图片路径并非是从后台获取过来的数据. 因此在data中必须用require加载,否则会当成字符串来处理. 效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值