顶点计划:寝室作息讨论

顶点计划:寝室作息讨论

早睡:积极与晚睡的人沟通,尽量让他们控制熄灯后聊天的声音,同时准备一些保障睡眠质量的手段,如眼罩耳塞等,控制情绪,不要与寝室室友起冲突。

晚睡:换位思考,体谅一下早睡室友的心情,在早睡室友心情不佳时避免与他起冲突,安抚一下他的情绪,可以与早睡室友磨合渐渐提早自己的睡眠时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用C语言实现建立有向图的代码示例: ```c #include <stdio.h> #include <stdlib.h> #define MAX_VERTEX_NUM 20 // 最大顶点数 #define INFINITY 65535 // 无穷大 typedef char VertexType; // 顶点类型 typedef struct ArcNode { // 边表结点 int adjvex; // 该边所指向的顶点位置 struct ArcNode *nextarc; // 指向下一条边的指针 } ArcNode; typedef struct VNode { // 顶点表结点 VertexType data; // 顶点信息 ArcNode *firstarc; // 指向第一条依附该顶点的边的指针 } VNode, AdjList[MAX_VERTEX_NUM]; typedef struct { // 邻接表 AdjList vertices; // 顶点表 int vexnum, arcnum; // 图的当前顶点数和边数 } ALGraph; // 初始化邻接表 void InitGraph(ALGraph *G) { int i; G->vexnum = G->arcnum = 0; for (i = 0; i < MAX_VERTEX_NUM; i++) { G->vertices[i].data = '\0'; G->vertices[i].firstarc = NULL; } } // 获取顶点在邻接表中的位置 int LocateVex(ALGraph *G, VertexType v) { int i; for (i = 0; i < G->vexnum; i++) { if (G->vertices[i].data == v) { return i; } } return -1; } // 添加顶点 void AddVex(ALGraph *G, VertexType v) { if (G->vexnum >= MAX_VERTEX_NUM) { printf("Error: The graph is full!\n"); return; } G->vertices[G->vexnum].data = v; G->vertices[G->vexnum++].firstarc = NULL; } // 添加边 void AddArc(ALGraph *G, VertexType v, VertexType w) { int vidx, widx; ArcNode *p; vidx = LocateVex(G, v); widx = LocateVex(G, w); if (vidx == -1 || widx == -1) { printf("Error: Vex does not exist!\n"); return; } p = (ArcNode *)malloc(sizeof(ArcNode)); p->adjvex = widx; p->nextarc = G->vertices[vidx].firstarc; G->vertices[vidx].firstarc = p; G->arcnum++; } // 输出邻接表 void PrintGraph(ALGraph *G) { int i; ArcNode *p; for (i = 0; i < G->vexnum; i++) { printf("%c: ", G->vertices[i].data); p = G->vertices[i].firstarc; while (p) { printf("%c ", G->vertices[p->adjvex].data); p = p->nextarc; } printf("\n"); } } int main() { ALGraph G; InitGraph(&G); AddVex(&G, 'A'); AddVex(&G, 'B'); AddVex(&G, 'C'); AddVex(&G, 'D'); AddVex(&G, 'E'); AddVex(&G, 'F'); AddVex(&G, 'G'); AddVex(&G, 'H'); AddArc(&G, 'A', 'B'); AddArc(&G, 'A', 'C'); AddArc(&G, 'B', 'D'); AddArc(&G, 'B', 'E'); AddArc(&G, 'C', 'F'); AddArc(&G, 'C', 'G'); AddArc(&G, 'D', 'H'); AddArc(&G, 'E', 'H'); AddArc(&G, 'F', 'G'); PrintGraph(&G); return 0; } ``` 这个代码实现了建立一个有向图,顶点数为8,边数为9,顶点分别为A、B、C、D、E、F、G、H,边的信息为0,1、0,2、1,3、1,4、2,5、2,6、3,7、4,7、5,6。这个程序的输出结果是: ``` A: B C B: E D C: G F D: H E: H F: G G: H: ``` 即按照邻接表的形式输出了该有向图的结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值