图数据结构:顶点结点和图的定义

需积分: 0 0 下载量 9 浏览量 更新于2024-08-23 收藏 1.67MB PPT 举报
顶点结点-数据结构图 在数据结构中,图是一种复杂的数据结构,它们之间的关系是任意的。图中任意两点之间都可能相关。在本节中,我们将讨论图的定义、术语和基本概念。 图的定义 图(Graph)是由两个集合V(G)和E(G)组成的,记为G=(V,E),其中: * V(G)是顶点的非空有限集 * E(G)是边的有限集合,边是顶点的无序对或有序对 有向图 有向图G是由两个集合V(G)和E(G)组成的,其中: * V(G)是顶点的非空有限集 * E(G)是有向边(也称弧)的有限集合,弧是顶点的有序对,记为<v,w>,v,w是顶点,v为弧尾,w为弧头 无向图 无向图G是由两个集合V(G)和E(G)组成的,其中: * V(G)是顶点的非空有限集 * E(G)是边的有限集合,边是顶点的无序对,记为(v,w)或(w,v),并且(v,w)=(w,v) 顶点和弧 顶点:图中的数据元素通常称作顶点。 弧:若<v,w>∈r,则<v,w>表示从v到w有一条弧。且称v为弧尾(tail或initial node),w为弧头(head或terminal node),此时的图称为有向图。 无向图:若<v,w>∈r必有<w,v>∈r,即r是对称的,表示v到w有一条边,此时图为无向图。 图的抽象数据类型 Adt Graph={ 数据对象v:v是具有相同特性的数据元素的集合,成为顶点集。 数据关系r: R={vr}vr={<v,w>|v,w∈V(G)且p(v,w)表示从v到w的弧,谓词p(v,w)定义了弧<v,w>的意义或信息。} 操作p: 略 图的存储结构 在计算机中,图可以用邻接矩阵或邻接表来存储。邻接矩阵是一种二维数组,数组的每个元素表示两个顶点之间是否存在边。邻接表是一种链表,每个链表节点对应一个顶点,链表中的每个元素表示与该顶点相连的所有顶点。 顶点结点的数据结构 typedef struct dnode { int data; //存与顶点有关信息 struct arcnode *firstin; //指向以该顶点为弧头的第一个弧结点 struct arcnode *firstout; //指向以该顶点为弧尾的第一个弧结点 }DD; DD g[M]; //g[0]不用 data firstin firstout 在上面的代码中,我们定义了一个顶点结点的数据结构,包括数据字段data、指向以该顶点为弧头的第一个弧结点的指针firstin和指向以该顶点为弧尾的第一个弧结点的指针firstout。 图的应用 图是一种重要的数据结构,它广泛应用于计算机科学和其他领域,如社交网络、交通网络、计算机网络等。图的应用包括: * 社交网络分析 * 交通网络优化 * 计算机网络拓扑结构 * 数据挖掘 图是一种复杂的数据结构,它们之间的关系是任意的。图的定义、术语和基本概念是理解图的基础,而图的存储结构和应用是图的重要方面。