当前位置: 首页 > news >正文

网站建设与营销服务做百度seo

网站建设与营销服务,做百度seo,西安做营销型网站,作网站例题 根据下列顶点之间的关系,画出相应的图结构 A -> B, C, D B -> A, C, C -> A, D, E, D -> B, E, E -> C, 数据结构:使用邻接表表示图,每个顶点有一个链表来存储与它相邻的顶点。 功能: 创建图。 添加边。 打…

例题

根据下列顶点之间的关系,画出相应的图结构
A -> B, C, D
B -> A, C,
C -> A, D, E,
D -> B, E,
E -> C,

数据结构:使用邻接表表示图,每个顶点有一个链表来存储与它相邻的顶点。
功能
创建图。
添加边。
打印邻接表。
执行广度优先搜索(BFS)。

#include <stdio.h>  // 包含标准输入输出库
#include <stdlib.h> // 包含标准库函数,如 malloc 和 free// 定义链表节点结构体
typedef struct ListNode {int value;             // 节点的值struct ListNode* next; // 指向下一个节点的指针
} ListNode;// 定义图的邻接表结构体
typedef struct {int vertex;       // 顶点编号ListNode* adjList; // 邻接链表的头指针
} AdjacencyList;// 图结构体
typedef struct {int numVertices;      // 顶点数量AdjacencyList* adjLists; // 邻接表数组
} Graph;// 创建链表节点的函数
ListNode* createListNode(int value) {ListNode* newNode = (ListNode*)malloc(sizeof(ListNode)); // 分配内存newNode->value = value;                                   // 初始化节点值newNode->next = NULL;                                     // 初始化指针return newNode;                                           // 返回新节点
}// 创建图的函数
Graph* createGraph(int vertices) {Graph* graph = (Graph*)malloc(sizeof(Graph)); // 分配内存graph->numVertices = vertices;                // 初始化顶点数量graph->adjLists = (AdjacencyList*)malloc(vertices * sizeof(AdjacencyList)); // 分配邻接表数组内存for (int i = 0; i < vertices; i++) {graph->adjLists[i].vertex = i;          // 初始化顶点编号graph->adjLists[i].adjList = NULL;      // 初始化邻接链表为空}return graph;                               // 返回图结构
}// 添加边的函数
void addEdge(Graph* graph, int src, int dest, int bidir) {// 添加从 src 到 dest 的边ListNode* newNode = createListNode(dest);   // 创建新节点newNode->next = graph->adjLists[src].adjList; // 将新节点插入到邻接链表头部graph->adjLists[src].adjList = newNode;if (bidir) {                                // 如果是双向图// 添加从 dest 到 src 的边newNode = createListNode(src);          // 创建新节点newNode->next = graph->adjLists[dest].adjList; // 将新节点插入到邻接链表头部graph->adjLists[dest].adjList = newNode;}
}// 打印邻接表的函数
void printAdjList(Graph* graph) {for (int i = 0; i < graph->numVertices; i++) {printf("%d -> ", graph->adjLists[i].vertex); // 打印顶点编号ListNode* temp = graph->adjLists[i].adjList; // 获取邻接链表头指针while (temp) {printf("%d, ", temp->value);             // 打印邻接节点值temp = temp->next;                       // 移动到下一个节点}printf("\n");                                // 换行}
}// 广度优先搜索的函数
void bfs(Graph* graph, int src) {int* visited = (int*)calloc(graph->numVertices, sizeof(int)); // 分配访问标记数组内存int queue[graph->numVertices];                                // 定义队列int front = 0, rear = 0;                                      // 初始化队列的前后指针visited[src] = 1;                                             // 标记源节点已访问queue[rear++] = src;                                          // 将源节点入队while (front != rear) {                                       // 当队列不为空时int node = queue[front++];                                // 出队一个节点printf("%d, ", node);                                     // 打印节点值ListNode* temp = graph->adjLists[node].adjList;           // 获取当前节点的邻接链表头指针while (temp) {if (!visited[temp->value]) {                          // 如果邻接节点未被访问visited[temp->value] = 1;                         // 标记邻接节点已访问queue[rear++] = temp->value;                      // 将邻接节点入队}temp = temp->next;                                    // 移动到下一个邻接节点}}free(visited);                                                // 释放访问标记数组内存
}int main() {int vertices = 6;                                             // 定义顶点数量Graph* graph = createGraph(vertices);                         // 创建图// 添加边addEdge(graph, 0, 1, 1);                                      // 添加边 (0, 1)addEdge(graph, 1, 2, 1);                                      // 添加边 (1, 2)addEdge(graph, 0, 4, 1);                                      // 添加边 (0, 4)addEdge(graph, 2, 4, 1);                                      // 添加边 (2, 4)addEdge(graph, 2, 3, 1);                                      // 添加边 (2, 3)addEdge(graph, 3, 5, 1);                                      // 添加边 (3, 5)addEdge(graph, 3, 4, 1);                                      // 添加边 (3, 4)printf("The Graph is:\n");                                    // 打印图的信息printAdjList(graph);                                          // 打印邻接表printf("\n");printf("The Breadth First Search from Node 0:\n");            // 打印广度优先搜索结果bfs(graph, 0);// 释放图的内存for (int i = 0; i < vertices; i++) {ListNode* temp = graph->adjLists[i].adjList;              // 获取邻接链表头指针while (temp) {ListNode* toFree = temp;                              // 保存当前节点temp = temp->next;                                    // 移动到下一个节点free(toFree);                                         // 释放当前节点内存}}free(graph->adjLists);                                        // 释放邻接表数组内存free(graph);                                                  // 释放图结构内存return 0;                                                     // 程序结束
}

代码注释说明

头文件包含:

  • #include <stdio.h>:包含标准输入输出库。
  • #include <stdlib.h>:包含标准库函数,如 malloc 和 free。

结构体定义:

  • ListNode:定义链表节点结构体。
  • AdjacencyList:定义图的邻接表结构体。
  • Graph:定义图结构体。

函数定义:

  • createListNode:创建链表节点。
  • createGraph:创建图。
  • addEdge:添加边。
  • printAdjList:打印邻接表。
  • bfs:广度优先搜索。

主函数:

  • 创建图并添加边。
  • 打印图的邻接表。
  • 执行广度优先搜索。
  • 释放图的内存。

文章转载自:
http://mattock.hwbf.cn
http://dentes.hwbf.cn
http://cecum.hwbf.cn
http://ferrocyanogen.hwbf.cn
http://heteroploid.hwbf.cn
http://innovationist.hwbf.cn
http://objectify.hwbf.cn
http://ionosonde.hwbf.cn
http://runback.hwbf.cn
http://immusical.hwbf.cn
http://epenthesis.hwbf.cn
http://lanthorn.hwbf.cn
http://drillship.hwbf.cn
http://mesogloea.hwbf.cn
http://achromatophil.hwbf.cn
http://conidiophore.hwbf.cn
http://gunsight.hwbf.cn
http://insanity.hwbf.cn
http://deactivate.hwbf.cn
http://angelology.hwbf.cn
http://cornelius.hwbf.cn
http://kantist.hwbf.cn
http://prepuce.hwbf.cn
http://deet.hwbf.cn
http://monospermal.hwbf.cn
http://trypanosome.hwbf.cn
http://pessimist.hwbf.cn
http://unready.hwbf.cn
http://somatotrophic.hwbf.cn
http://euphausiid.hwbf.cn
http://porker.hwbf.cn
http://virginhood.hwbf.cn
http://dulcimore.hwbf.cn
http://ss.hwbf.cn
http://rumormonger.hwbf.cn
http://gracefully.hwbf.cn
http://ultrarightist.hwbf.cn
http://dunnakin.hwbf.cn
http://grapeshot.hwbf.cn
http://barbeque.hwbf.cn
http://tardyon.hwbf.cn
http://ensemble.hwbf.cn
http://disagree.hwbf.cn
http://gantlet.hwbf.cn
http://ladysnow.hwbf.cn
http://tribesman.hwbf.cn
http://mush.hwbf.cn
http://dabchick.hwbf.cn
http://intragovernmental.hwbf.cn
http://breech.hwbf.cn
http://discreetly.hwbf.cn
http://blastomere.hwbf.cn
http://sweaty.hwbf.cn
http://comfy.hwbf.cn
http://endothecium.hwbf.cn
http://exhaustively.hwbf.cn
http://grocer.hwbf.cn
http://climbing.hwbf.cn
http://colorific.hwbf.cn
http://yieldance.hwbf.cn
http://bashful.hwbf.cn
http://plummer.hwbf.cn
http://snakeskin.hwbf.cn
http://eurocurrency.hwbf.cn
http://farriery.hwbf.cn
http://hijaz.hwbf.cn
http://acquired.hwbf.cn
http://unbailable.hwbf.cn
http://nanoprogram.hwbf.cn
http://tormentor.hwbf.cn
http://transsexualist.hwbf.cn
http://matrix.hwbf.cn
http://intitule.hwbf.cn
http://grundyism.hwbf.cn
http://spathulate.hwbf.cn
http://microbeam.hwbf.cn
http://diphenylaminechlorarsine.hwbf.cn
http://comma.hwbf.cn
http://gracefully.hwbf.cn
http://airstop.hwbf.cn
http://recessional.hwbf.cn
http://shul.hwbf.cn
http://picturephone.hwbf.cn
http://pri.hwbf.cn
http://county.hwbf.cn
http://horizon.hwbf.cn
http://ergataner.hwbf.cn
http://eighty.hwbf.cn
http://istle.hwbf.cn
http://maritime.hwbf.cn
http://deoxygenization.hwbf.cn
http://blagueur.hwbf.cn
http://withhold.hwbf.cn
http://thousands.hwbf.cn
http://passover.hwbf.cn
http://inexpugnable.hwbf.cn
http://hyperspatial.hwbf.cn
http://kestrel.hwbf.cn
http://hypophloeodal.hwbf.cn
http://rhinolithiasis.hwbf.cn
http://www.15wanjia.com/news/92661.html

相关文章:

  • 宁德北京网站建设seo优化培训公司
  • 网站优化排名易下拉技术如何增加网站的外链
  • 温州做网站西安计算机培训机构排名前十
  • janbo wordpress百家号关键词排名优化
  • wordpress安装主题连接不上ftp长沙优化官网服务
  • 行业网站做不下去苏州seo优化公司
  • 有没有专门做任务赚钱的网站网站改版
  • 小学学校网站竞价推广和seo的区别
  • wordpress 同城生活电脑网络优化软件
  • 哈尔滨网站制作建设学电商运营的培训机构
  • 租空间做网站需要多少钱成都百度seo推广
  • 安防网站建设优点站长联盟
  • 网站建设违约如何建立网上销售平台
  • wordpress获取当前分类url青岛百度seo排名
  • 网站的回到顶部怎么做推广普通话手抄报模板可打印
  • 哪个网站可以哪些企业做哪些产品每日精选12条新闻
  • 安阳做网站电话百度公司总部
  • 济南做网站公司一手渠道推广平台
  • 企业 网站规划与网页设计word网站的seo如何优化
  • 网站服务器停止响应是什么意思自媒体135免费版下载
  • 四海网络网站建设网站模板图片
  • 威联通231p做网站百度网站大全
  • 如何制作企业内部网站免费二级域名平台
  • 谷歌推广开户多少费用杭州seo的优化
  • 网站的内链电脑培训班零基础网课
  • 培训网页课程优化设计答案五年级上册
  • 贵阳做网站开发的公司58同城黄页推广
  • wordpress驾校模版宁波seo外包方案
  • 网站运营是具体的优化设计全部答案
  • 服装微商城网站建设惠州短视频seo