供参考:
#include <stdio.h>
// 定义顶点类型为整数
typedef int Vertex;
// 定义权重类型
typedef int WeightType;
struct ENode{
Vertex V1, V2; /* 有向边<V1, V2> */
WeightType Weight; /* 权重 */
};
typedef struct ENode *PtrToENode; // 给 struct ENode * 这种数据类型起一个新的名字,叫做 PtrToENode。以后声明指向结构体的指针时,可以直接用 PtrToENode。
typedef PtrToENode Edge; // 给 PtrToENode 这种数据类型起一个新的名字,叫做 Edge。以后声明边时,可以直接用 Edge。
int main(void) {
// 声明一个结构体变量
struct ENode e1;
// 声明一个指向结构体的指针变量
PtrToENode p;
// 声明一个边变量
Edge e2;
// 为结构体变量赋值
e1.V1 = 1; e1.V2 = 2; e1.Weight = 10;
// 为指针变量赋值
p = &e1;
// 为边变量赋值
e2 = p;
// 访问结构体成员
printf("%d %d %d\n", e1.V1, e1.V2, e1.Weight);
// 访问指针所指向的结构体成员
printf("%d %d %d\n", p->V1, p->V2, p->Weight);
// 访问边所代表的结构体成员
printf("%d %d %d\n", e2->V1, e2->V2, e2->Weight);
return 0;
}