求图节点的入度,基础知识点

背景

最近做题,这道题求入度,不是很难。但是有一些知识点没有理顺,这里做一个汇总。

基础知识点

这里总结一下,我遇到的一些问题,多是和基础知识有关,不过还是要总结。温故知新,常读常新,受益无穷。
1,结构体定义问题
typedef struct 与struct的区别:
typedef 就是给结构体申请一个别名,在在申请变量时就可以省去struct关键词。

struct Student stu//不加typedef
Student stu//加了typedef

BTNode与*btnode

typedef struct BTNode
{
	......
}BTNode,*btnode

两者都是二叉树的别名,*btnode是申请二叉树节点。
其实btnode p就等价于BTNode *p;因此为了记忆方便,可以只写BTNode ,这也与int *p等一脉相承。

typedef struct BTNode
{
	......
}BTNode

2,什么时候开辟空间
建立指针,指针指向开辟的空间。

BTNode *bt;
bt=(BTNode*)malloc(sizeof(BTNode));

3,".“与”->"的区别;函数传入Graph g和传入Graph *g又分别如何调用?
结构体元素中非指针用点,指针用箭头。
图中:
g1.adjlist[0]不是指针故后面用点引出下属元素。
g1.adjlist[0].firstarc是指针,故用箭头引出下属元素。
在这里插入图片描述
函数传入Graph g1
g1后用点
在这里插入图片描述
函数传入Graph *g1
g1后用->
在这里插入图片描述

求入度

int count(AGraph *g,int k)
{
	ArcNode *p;
	int i,sum;
	sum=0;
	for(i=0;i<g->n;++i)//遍历所有节点
	{
		p=g->adjlist[i].firstrarc;
		while(p!=NULL)//对某一节点的所有邻接点遍历,从改点出发,如果有指向k节点的,就sum++,并停止遍历
		{
			if(p->adjvex==k)
			{
				++sum;
				break;
			}
			p=p->nextarc;
		}
	}
	return sum;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕南路GISer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值