邻接表 - 边表

我对边表的理解和边表的建立:

//结构
struct node
{
    int u,v,w;
    int next;
}g[M];
int head[N],t = 0;
//初始化
void init()
{
    t = 0;
    memset(head,-1,sizeof(head));
}
//加边
void add(int u,int v,int w)
{
    g[t].u = u;
    g[t].v = v;
    g[t].w = w;
    g[t].next = head[u];
    head[u] = t;
    t++;      // 为下一次做准备
}
//循环遍历
//使用的时候,找u的邻接点
for(int i = head[u];i!=-1;i = g[i].next)
{
    int v = g[i].v;
    //然后处理
}

很明显,我刚开始的理解错了,我没有注意到邻接边表的遍历过程,也理解错了,建图过程,没有深刻理解u和t的用途,一直没理解他们的真正用途,也没有在完全分析完此过程后就直接开始考虑,倘若我深刻分析了该过程的遍历过程的话,说不定我会弄懂的,我太心急了,没搞懂所有的应该注意的地方就开始分析建图过程,实在是不应该,这也提醒我以后无论是做题还是生活,都要仔细分析后再动手

谈一下对着这题的理解吧,毕竟研究了三个小时,,,。

首先正如海波说的该邻接边表存储的是边的信息,他根据前向性进行查找,当时我根本没理解这一点

t :记录边的条数。

u:作用为根据u进行查找。

邻接表 - 边表

时间: 2024-12-06 12:33:20

邻接表 - 边表的相关文章

线性表——顺序表与单链表学习小结

线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列. 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表.链表.栈.队列.字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线.但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储. 顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储.在数组上完成数据的增删查改. 链表 链表是一种物理存储结构上非连续.非顺序的存储结构,数据

4-3 求链式表的表长 (10分)

本题要求实现一个函数,求链式表的表长. 函数接口定义: int Length( List L ); 其中List结构定义如下: typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLNode Next; }; typedef PtrToLNode List; L是给定单链表,函数Length要返回链式表的长度. 裁判测试程序样例: #include <stdio.h> #include <stdl

线性表—顺序表

引言(重点): 1.线性表的概述 2.线性表的抽象数据类型描述 3.线性表的实现方式 4.线性表的具体实现 5.每种具体实现的分析 1.什么是线性表?线性表(Linear List):由同类型元素构成有序序列的线性结构. 特征:1.表中元素个数称为线性表的长度2.线性表没有元素时,称为空表3.表起始位置称表头,表结束位置称为表尾4.在一个元素的前面的元素叫前驱元素,在一个元素后面的元素叫后继元素. 2.线性表的抽象数据类型描述 List MakeEmpty():初始化一个空线性表L;Elemen

SQL横表纵表转换和对比

横表转纵表 横表样式: sql语句: 1 select Name,'语文' as 科目,Chinese as 成绩 from HorizontalTab 2 union all 3 select Name,'数学' as 科目,Math as 成绩 from HorizontalTab 4 union all 5 select Name,'英语' as 科目,English as 成绩 from HorizontalTab 6 order by Name,科目 desc 转换结果: 横表优缺点:

第四天,表与表之间的关系,一对多,多对多,查询

※MySQL中的字符编码(注意,utf8中没有'-',跟Java中不一样)SHOW VARIABLES; //查看系统变量//查询字符编码相关的系统变量SHOW VARIABLES WHERE variable_name LIKE 'character%'; 解决MySQK的中文乱码:character_set_client,character_set_connection和character_set_results这三者必须一致(GBK,GB2312,UTF8这三者都可以,但若采用其中一种则3

MySQL---数据库从入门走上大神系列(四)-子查询、表与表之间的关系

本篇博客讲解(子查询)非相关子查询/相关子查询,一对一,一对多,多对一,多对的的关系! 准备: 首先我们创建一列sex.再为部分行设置好值0(女)或者1(男): delete from stud where age=26; 删除年龄为26的行. update stud set sex='1' where saddress like '湖南%'; 将地址中湖南开头的人的的sex修改为1. update stud set sex='0' where age>=30 and sex is null;

mysql表与表之间的关系(多对多,一对多)

#创建数据库CREATE DATABASE day15;#使用USE day15;#创建表CREATE TABLE test1( id INT PRIMARY KEY AUTO_INCREMENT,#这是主键 num INT UNIQUE, #这个唯一键不起作用? NAME VARCHAR(22));#存入数据INSERT INTO test1(NAME) VALUES('aaa'); #删除数据但是不重置自动增长数DELETE FROM test1; #删除数据重置行数(相当于删除掉整个表,然

两表(多表)关联update的写法 .

原文:两表(多表)关联update的写法 . 关于两表关联的update,可以把SQL写成了在SQL Server下面的特有形式,但是这种语法在Oracle下面是行不通的 update customers a    set    city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)   where  exists (select 1                   from 

mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构

mysqldump -uroot -p password -d DBname Tname >db.sql #关建点是"-d"参数 导出数据库的所有表的表结构 mysqldump -uroot -p password -d DBname >dball.sql #导出DBname的所有表的表结构