基于“Havel Hakimi”算法的判断是否构成简单图的方法

第一步

观察度数为奇数的数列是不是偶数个,例如2,3,3,1这个数列的度数为奇数的数有奇数个,不能构成简单图

如果满足进入第二步

第二步

数列中有n个元素,则度数最大值不能超过n-1,例如1,3,这样的数列就无法构成简单图

如果满足进入第三步

第三步

首先将S={d1,d2,d3,d4,...,dn}进行降序排序

然后删除第一个元素,即最大的元素d[i],然后对后面的前d[i]个元素都减去一,以此递归下去

如果最后的数都是零的话,就可以构成简单图,如果出现负数或度数大于剩余点数的个数即无法构成简单图

例子

例如 1 1 1 2 3.

观察度数为奇数的有1,1,1,3 有四个,满足第一步

观察最大度数为3,小于5-1,故满足第二步

将数列降序排列 3 2 1 1 1

删去最大元素3,剩下的前3个元素减一,得到 1 0 0 1

再重新排序

1 1 0 0

删去最大元素1 剩下的前1个减去一,得到 0 0 0

故都是零向量,所以是简单图

再例如1, 2,3,4,5,5

同理前两步判断这个数列也满足

进行第三步

先排序

5,5,4,3,2,1

删去最大元素5,剩下的前5个元素减去一,得到4,3,2,1,0

排序后 删去最大元素4,剩下的前4个元素减去一, 2,1,0,-1 出现负数,故无法构成简单图

如何判断一个度数数列能否构成简单图相关推荐

  1. 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?

    自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...

  2. C# 实验三 判断一个字符、判断三角形、千名学生、a+aa+aaa+aaaa、求数列相加、约瑟夫环

    题目 以下为实现代码 1 判断一个字符 using System; using System.Collections.Generic; using System.Linq; using System. ...

  3. 判断一个序列是否为栈的有效输出序列

    栈的实际应用-判断一个序列是否为栈的有效输出序列 对于数据结构学科的初学者,栈的构建是很重要的知识,判断一个栈是否为有效输出序列是其中重要的题目.笔者整理了三种C++代码,其核心编程思想大致相同,希望 ...

  4. c语言编写程序判断图的连通,图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)...

    博士期间估计这可能是唯一一个要编程的作业,搞了半天弄出这个东西,放这里为以后用到的时候查找方便. 说来也是可笑,读博士期间发现大家对上课也都没什么兴趣,老师也是那么回事,都说博士期间学的课程是要有助于 ...

  5. linux判断是否能上网_母亲提醒女儿:判断一个男人是否值得嫁,从这两点就能轻易看出...

    没有哪个母亲不希望自己的女儿能够在长大之后嫁给一个出色的男人. 当然,这样的男人不需要有太多的钱或者出色的外貌,但必须得具备一定的人品. 我的一个朋友今年26岁,已经到了适婚年龄的她渴望着嫁给一个好男 ...

  6. python怎样判断一个文件是否存在_python如何判断一个文件是否存在

    python如何判断一个文件是否存在 发布时间:2020-09-23 11:38:42 来源:亿速云 阅读:82 作者:Leah python如何判断一个文件是否存在?针对这个问题,这篇文章详细介绍了 ...

  7. 判断一个IP区间(或IP)是否被另一个IP区间所包含

    以下方法实现判断一个IP是否被一个IP区间所包含 有一些静态方法可能引用了同名空间的自定义的类, 至于合并两个相临的IP段,可对其中的最大或最小IP+1 using System; using Sys ...

  8. python任意输入一个正整数、判断该数是否为素数_Python编程判断一个正整数是否为素数的方法,python素数...

    Python编程判断一个正整数是否为素数的方法,python素数 本文实例讲述了Python编程判断一个正整数是否为素数的方法.分享给大家供大家参考,具体如下: import string impor ...

  9. 如何判断一个元素在亿级数据中是否存在?

    本文转载于公众号:crossoverJie 前言 最近有朋友问我这么一个面试题目: 现在有一个非常庞大的数据,假设全是 int 类型.现在我给你一个数,你需要告诉我它是否存在其中(尽量高效). 需求其 ...

最新文章

  1. python Django 管理站点1.3
  2. React Native 初体验
  3. python 如果你的年龄大于18_python基础
  4. What are TCHAR, WCHAR, LPSTR, LPWSTR, LPCTSTR (etc.)?
  5. fcn从头开始_如何使用Go从头开始构建区块链
  6. HTML5与HTML4的比较
  7. hdu 1159(最长公共子序列)
  8. 我写的不只是小说更是程序人生
  9. rabbitmq监控queue中message数量
  10. MFC 程序来龙去脉
  11. tsm2812通用定时器中断_通用定时器中断(TIM2)
  12. 直播预告 | Rainbond与Service Mesh微服务架构
  13. java判断string字符串是不是json格式
  14. JAVE实现音频截取并上传OSS
  15. Js 嵌套if选择结构
  16. 下列选项中完整描述计算机操作系统作用是,电影《八部半》中,古依多的童年是他生命的源泉,也是他灵魂的开端。...
  17. 大数据建模 需要了解的八大定律
  18. 003_wz_bbk_Linux下GCC的安装
  19. 软考不通过能不能补考?解答来了
  20. 简单循迹小车实验心得_新人刚刚接触单片机,求教一个简单的循迹小车程序(实在看不懂)...

热门文章

  1. void函数为什么还能返回(不能返回前面理解错误)
  2. 年赚500万,到底有多难?
  3. webapck运行报错- css-loader minimize
  4. python打印一个空心等腰三角形,再内接一个空心三角形
  5. JVM 低延迟垃圾收集器 Shenandoah 和 ZGC
  6. 如何快速转发朋友圈呢?
  7. ConvergenceWarning: Liblinear failed to converge, increase the number of iterations. ConvergenceW
  8. 前端水印的集中解决方案
  9. 哆啦a梦css html,用css画一个哆啦A梦
  10. Calico网络策略原理