👋 Hi, I’m @Beast Cheng
👀 I’m interested in photography, hiking, landscape…
🌱 I’m currently learning python, javascript, kotlin…
📫 How to reach me --> 458290771@qq.com
喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑💻
感兴趣的小伙伴可以点一下订阅、收藏、关注!🚀
谢谢大家!🙏
顺序+链式存储
// 顶点
typedef struct VNode{
VertexType data; // 顶点信息
ArcNode *first; // 第一条边/弧
}VNode, AdjList[MaxVertexNum];
// 边/弧
typedef struct ArcNode{
int adjvex; // 边/弧指向哪个结点
struct ArcNode *next; // 指向下一条弧的指针
// InfoType info; // 边权值
}ArcNode;
// 用邻接表存储的图
typedef struct{
AdjList vertices;
int vexnum, arcnum;
}ALGraph;
无向图:边结点的数量是
2
∣
E
∣
2|E|
2∣E∣ ,整体空间复杂度为
O
(
∣
V
∣
+
2
∣
E
∣
)
O(|V|+2|E|)
O(∣V∣+2∣E∣)
有向图:边结点的数量是
∣
E
∣
|E|
∣E∣ ,整体空间复杂度为
O
(
∣
V
∣
+
∣
E
∣
)
O(|V|+|E|)
O(∣V∣+∣E∣)
如何求顶点的度、入度、出度?
无向图
度:遍历和顶点相关的边列表就可以
有向图
出度:遍历和这个结点相关的边结点的链表就可以
入度:唯一的办法就是把所有的结点的边链表都依次遍历一遍