有向无环图的拓扑排序

「数据结构详解·十二」有向无环图 & 拓扑排序 DAG、拓扑排序详解 阅读详情

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------

 

package com.data.struct;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import com.data.struct.GraphicDepthFirst.Node;


public class GraphicDepthFirstSort {
	private Node[] list;
	private int time=0;
	private List<Node> sortList=new ArrayList<Node>();
	public GraphicDepthFirstSort(int v,int e){
		list=new Node[v];
		for(int i=0;i<v;i++){
			Node node=new Node();
			node.id=i;
			list[i]=node;
		}
		for(int i=0;i<e;i++){
			int v1=new Random().nextInt(v);
			int v2=new Random().nextInt(v);
			if(v1==v2){
				continue;
			}
			while(true){
				Node node=list[v1];
				boolean already=false;
				while(node.next!=null){
					if(node.next.id==v2){
						already=true;
						break;
					}
					node=node.next;
				}
				if(already==true){
					break;
				}
				Node ex=new Node();
				ex.id=v2;
				node.next=ex;
				break;
			}
		}
	}
	
	public List<Node> getSort(){
		return sortList;
	}
	public void printSort(){
		System.out.println("sort===========");
		for(int i=0;i<sortList.size();i++){
			System.out.print(sortList.get(i).id+"  ");;
		}
		System.out.println();
	}
	
	public void depthFirstSearch(){
		for(int i=0;i<list.length;i++){
			if(list[i].color==Node.WHITE){
				dfsVisit(list[i]);
			}
		}
	}
	
	private void dfsVisit(Node node){
		time++;
		node.d=time;
		node.color=Node.GRAY;
		Node w=list[node.id];
		Node u=w;
		while(w.next!=null){
			if(list[w.next.id].color==Node.WHITE){
				list[w.next.id].color=Node.GRAY;
				list[w.next.id].parent=u;
				dfsVisit(list[w.next.id]);
			}
			w=w.next;
		}
		node.color=Node.BLACK;
		time++;
		node.f=time;
		sortList.add(0, node);
	}
	
	public void printDepth(Node v){
		Node s=list[0];
		if(v==s){
			System.out.print(s.id+"=>");
		}else if(v.parent==null){
			System.out.print(v.id+"=>");
		}else {
			printDepth(v.parent);
			System.out.print(v.id+"=>");
		}
	}
	
	public void print(){
		for(int i=0;i<list.length;i++){
			Node node=list[i];
			System.out.print(node.id+"=>");
			while(node.next!=null){
				System.out.print(node.next.id+"=>");
				node=node.next;
			}
			System.out.println();
		}
		
	}
	public void printAllDepth(){
		System.out.println("path");
		for(int i=0;i<list.length;i++){
			printDepth(list[i]);
			System.out.println();
		}
	}
	
	public static class Node{
		public static final int WHITE=1;
		public static final int BLACK=2;
		public static final int GRAY=3;
		private int id;
		private Node next;
		private int color=WHITE;
		private int d=Integer.MAX_VALUE;
		private Node parent;
		private int f;
	}
	public static void main(String[] args)throws Exception {
		GraphicDepthFirstSort g=new GraphicDepthFirstSort(5,30);
		g.print();
		g.depthFirstSearch();
		g.printAllDepth();
		g.printSort();
		
		
	}

}

上面构造的图,并不是有向无环图,但结果如果把它当作有向无环图,结果是正确的。

数据结构与算法——有向无环图的拓扑排序C++实现 阅读详情

相关推荐

拓扑排序+有向无环图(DAG)的检测

/*************************** 拓扑排序的两张方法: 1.dfs搜索 2.模拟人工的拓扑 两种方法的效率都是O(V + E) $$拓扑排序的方法也是有向无环图检测的方法 ****************************/ /* 拓扑排序 dfs搜索 - 邻接表 可以判断一个图是否有环 */ #include #include #include usin

Ieyasu的专栏 2764

有向无环图与拓扑排序

在一个DAG(有向无环图)中,我们将图中的顶点以线性方式进行排序,使得对于任何的顶点 u 到 v 的有向边 (u, v) ,都可以有 u 在 v 的前面。给定一个 DAG,如果从 u 到 v 有边,则认为 v 依赖于 u。如果 u 到 v 有路径(u 可达 v),则称 v 间接依赖于 u。拓扑排序的目标是将所有节点排序,使得排在前面的节点不能依赖于排在后面的节点。

a111737289291的博客 4728

【图论】有向无环图的拓扑排序

1. 引言 有向无环图(Directed Acyclic Graph, DAG)是有向图的一种,字面意思的理解就是图中没有环。常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度。拓扑排序是对DAG的顶点进行排序,使得对每一条有向边(u, v),均有u(在排序记录中)比v先出现。亦可理解为对某点v而言,只有当v的所有源点均出现了,v才能出现。 下图给出有向无环图的拓扑排序: 下图给出的顶点...

听雨草堂 418

有向无环图的应用——拓扑排序

目录一、什么是AOV网?二、什么是拓扑排序?2.1 拓扑排序的定义2.2 拓扑排序的基本思想三、拓扑排序算法的实现3.1 算法思想3.1.1 设置辅助数组indegree[ ]3.1.2 设置辅助栈3.1.3 算法思想3.2 算法实现3.2.1 求入度3.2.2 拓扑排序AOV网:在一个表示工程的有向无环图中,用顶点表示活动,用弧表示活动间的优先关系,称这样的图为顶点表示活动的网(Activity On Vertex Network),简称为AOV网。 注意: 通过拓扑排序得到的拓扑序列使得AOV网中所

狂放不羁霸的博客 2771

实现有向无环图的拓扑排序及圈检测

有向无环图(DAG)是一种图形数据结构,其中顶点用有向边相互连接,但没有任何一条边的起点和终点相同,形成闭环。DAG在数据结构和算法中拥有广泛的应用,因为它们可以有效地表示各种实体之间的依赖关系。在DAG中,顶点(节点)代表实体,边代表实体间的依赖关系。它不能包含任何循环依赖,这是因为如果存在循环依赖,就无法确定实体间的处理顺序,从而导致无限循环。DAG在解决此类问题时特别有用,因为它能帮助我们定义一个明确的顺序,确保每个节点在依赖它的节点之后处理。

weixin_42601608的博客 1173

Excel COUNTIF函数精确统计全解析:从模糊匹配到精准计数

在数据处理与办公自动化领域,条件计数是数据分析的基础操作,其核心原理在于对特定范围内满足设定条件的单元格进行识别与汇总。Excel中的COUNTIF函数是实现这一功能的常用工具,它通过文本匹配逻辑与通配符机制来执行条件判断。然而,其默认的模糊匹配行为常导致统计结果偏离预期,这正是精确统计的技术价值所在——确保数据汇总的准确性与可靠性,直接影响业务报告、薪酬核算、销售分析等应用场景的决策质量。本文聚焦COUNTIF函数的精确匹配技巧,深入剖析通配符(如星号*和问号?)的转义使用(通过波浪号~),并针对大小写敏

weixin_29040367的博客 358

有向无环图的所有拓扑排序

有向无环图的所有拓扑排序 对有向无环图DAG的拓扑排序是顶点的线性排序,从而使每一有向边[u,v][u,v][u,v],顶点u进来的顺序v在。如果图不是 DAG,则无法对图进行拓扑排序。 给定一个 DAG,打印图的所有拓扑排序。 All topological sorts of the given graph are: 4 5 0 2 3 1 4 5 2 0 3 1 4 5 2 3 0 1 4 5 2 3 1 0 5 2 3 4 0 1 5 2 3 4 1 0 5 2 4 0 3 1 5 2

wat1r的博客 2002

基于CNN对抗嵌入的图像隐写——CNN-Based Adversarial Embedding for Image Steganography

CNN-Based Adversarial Embedding for Image Steganography https://ieeexplore.ieee.org/abstract/document/8603808 这篇论文发表在TIFS( IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY),TIFS是网络与信息安全领域的国际两大顶级期刊之一,中国计算机学会(CCF)推荐的A类期刊,SCI一区TOP期刊,目前影响因子有7多了。 1 概

weixin_48654804的博客 2279

No.4有向无环图的拓扑排序

1.什么是有向无环图(简称DAG)呢? 举个浅显易懂的有向无环图拓扑排序的例子(Linux驱动匹配): 比如现在有abcde五个驱动模块文件,它们的具体的依赖顺序未知 但是给出了单个驱动模块文件会依赖其它的驱动依赖模块 1> a->bce,表示a的正常工作会依赖bce这三个驱动模块,但是bce之间的依 赖顺序又是未知的 2> b->d,b依赖d 3> c-&...

Neo 1万+

避坑指南:MTK平台Widevine L1密钥安装全流程详解(含SP META工具使用与Log分析)

本文详细解析了MTK平台实现Widevine L1认证的全流程,涵盖密钥申请、格式转换、安全烧录等关键步骤,特别针对Trustonic TEE环境下的SP META工具使用与日志分析提供实用指南。帮助开发者规避常见错误,确保DRM密钥安全部署,满足高端内容保护需求。

weixin_27219587的博客 477

C#实战:5分钟搞定Modbus RTU通讯(基于NModbus4库)

本文详细介绍了如何使用C#和NModbus4库快速实现Modbus RTU通讯,包括环境配置、核心功能实现、性能优化及常见问题排查。通过代码示例和实用技巧,帮助开发者高效完成工业自动化设备的数据采集与控制任务。

weixin_30689307的博客 468

图论 有向无环图 拓扑排序 是什么

一、有向无环图 有方向 没有闭环 二、拓扑排序 拓扑排序是将有向无环图的顶点排成一个线性序列的过程。 比如可将上图 三、拓扑排序步骤 1. 首先要任意选择一个没有前驱的顶点,即入度为0的点,然后将它输出。 在下面这张图中我们选择1为出发点。 2. 删除该节点以及与它相关联的所有边,这个点的nexts里面的点入度就减少1 选择1为出发点之后,我们将它输出,并删除该节点以及与它相关联的所有边。 3. 然后在删除后的图中继续找一个没有前驱的节点, ...

软件工程小施同学 的专栏 2629

芒果YOLO11改进44:主干Backbone篇之MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

包括YOLOv5、YOLOv7、YOLOv8等模型改进 373

带你了解有向无环图和拓扑排序

在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。而提到DAG,就差不多会联想到拓扑排序,拓扑排序是指由某个集合上的一个偏序得到该集合上的一个全序的操作。拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。拓扑排序是对有向无环图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面。DAG在区块链中得到很广泛的应用哦。

BoCong-Deng的博客 5706

BMD101传感器协议解析与STM32实现(LCD显示波形)

1 前言 BMD101传感器是神念科技开发的心电传感器。目前有一些商家开发了BMD101传感器模块,基本上都是利用蓝牙直接传输数据到PC或手机端。而本文介绍通过串口将数据传送给单片机,并在单片机上完成数据解析和心电波形LCD显示的功能。 2 通信协议解读 BMD101 通过 UART 接口通信。这是一个标准的 UART 接口,定义为 1 个起始位,8 个数据位,1 停止位格式,波特率 57600。 串口输出的数据包格式如下: 包括Header(帧头)、data payload(数据有效载荷)、CRC校验

weixin_44509533的博客 9294

Python爬虫实战:爬取国家企业信用信息公示系统(最新反反爬技术解析)

在当今大数据时代,企业信用数据对于市场分析、风险评估和商业决策具有重要价值。国家企业信用信息公示系统作为官方权威的企业信息平台,包含了全国各类企业的注册信息、行政处罚、经营异常等关键数据。复杂的反爬机制(动态Token、验证码、请求频率限制)数据渲染方式多样(部分内容由JavaScript动态加载)法律与合规风险(需遵守《网络安全法》和网站Robots协议)本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的企业信用信息爬虫,并重点解析应对各种反爬策略的解决方案。

2201_76125261的博客 2700

图-拓扑排序-有向无环图

拓扑排序 文章目录拓扑排序有向无环图拓扑排序排序方法 有向无环图 如果一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个图为有向无环图(Directed Acyclic Graph, DAG)。 拓扑排序 拓扑排序是将有向无环图 G 的所有顶点排序成一个线性序列,使得对图 G 中的任意两个顶点 u,v,如果存在边 u->v ,那么序列 u 一定在 v 前面。这个序列称为 拓扑序列。...

Veeupup博客 801

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

神奇的拓扑排序:解决有向无环图的问题

1.背景介绍 在现实生活中,有向无环图(Directed Acyclic Graph,DAG)是一个非常重要的概念,它可以用来描述许多复杂的系统和过程。例如,计算机编程中的控制流图、网络路由、项目管理、数据依赖关系等等。在这些场景中,有向无环图可以帮助我们更好地理解和解决问题。 在计算机科学领域,拓扑排序(Topological Sorting)是一个重要的算法概念,它可以用来解决有向无环图的...

AI天才研究院 1317

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

有向无环图下的拓扑排序

几个基本概念 1.有向图:顾名思义,从一个点到另一个点,并非向无向图那样默认双向可达(只要两点之间存在边就相互可达),有向图是严格按照方向单向可达。 2.有向图的环:对于一个有向图,如果从A出发,存在一条通路可使其又回到A,那么我们说该有向图存在环。 3.有向无环图:一个不存在环的有向图。 ...

qq_44872260的博客 2609
上一篇: 图的深度优先搜索
下一篇: 图的强联通分量
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值