//链表回环检测问题
#include<iostream>
#include<cstdlib>
using namespace std;
const int M=; struct node
{
int data;
node *next;
}; node *test1=new node();
node *test2=new node();//1->ring;2->no ring
node* vis[M]; bool test_ring(const node *head)
{
node *p=head->next;
int i=;
while(p)
{
for(int j=;j<i;j++)
{
if(vis[j]==p&&vis[j]!=NULL)
return true;
}
vis[i]=p;
p=p->next;
i++;
//cout<<vis[0]<<endl;
}
return false;
} bool advanced_test(const node *head)
{
node *slow=head->next;
node *fast=slow;
while(fast!=NULL&&fast->next!=NULL)
{
slow=slow->next;
fast=fast->next->next;
if(fast==slow)
{
return true;
}
}
return false;
} int main()
{
node *p=test1;
node *tag;//环切入点
for(int i=;i<=;i++)
{
node *t=new node;
t->data=i*;
if(i==)
tag=t;
p->next=t;
p=p->next;
p->next=NULL;
}
p->next=tag;
/*
p=test1->next;
while(p)
{
cout<<p->data<<endl;
p=p->next;
}
*/
p=test2;
for(int i=;i<=;i++)
{
node *t=new node;
t->data=i*;
p->next=t;
p=p->next;
p->next=NULL;
}
/*
p=test2->next;
while(p)
{
cout<<p->data<<endl;
p=p->next;
}
*/
for(int i=;i<M;i++)
vis[i]=NULL; cout<<"normal test:"<<endl;
if(test_ring(test1))
cout<<"ring!"<<endl;
else
cout<<"no ring!"<<endl;
if(test_ring(test2))
cout<<"ring!"<<endl;
else
cout<<"no ring!"<<endl; cout<<"advanced test:"<<endl;
if(advanced_test(test1))
cout<<"ring!"<<endl;
else
cout<<"no ring!"<<endl;
if(advanced_test(test2))
cout<<"ring!"<<endl;
else
cout<<"no ring!"<<endl; return ;
}

tz@HZAU

2019/3/14

【C++】链表回环检测的更多相关文章

  1. ORB-SLAM(六)回环检测

    上一篇提到,无论在单目.双目还是RGBD中,追踪得到的位姿都是有误差的.随着路径的不断延伸,前面帧的误差会一直传递到后面去,导致最后一帧的位姿在世界坐标系里的误差有可能非常大.除了利用优化方法在局部和 ...

  2. DLoopDetector回环检测算法

    词袋模型是一种文本表征方法,它应用到计算机视觉领域就称之为BoF(bag of features),通过BoF可以把一张图片表示成一个向量.DBoW2是一个视觉词袋库,它提供了生成和使用词典的接口,但 ...

  3. Code Reading: ORB-SLAM回环检测源码阅读+注释

    之前研究过一些回环检测的内容,首先要看的自然是用词袋回环的鼻祖和正当继承人(没有冒犯VINS和LDSO的意思)ORB-SLAM.下面是我的代码注释.因为代码都是自己手打的,不是在源码上注释的,所以一些 ...

  4. segMatch:基于3D点云分割的回环检测

    该论文的地址是:https://arxiv.org/pdf/1609.07720.pdf segmatch是一个提供车辆的回环检测的技术,使用提取和匹配分割的三维激光点云技术.分割的例子可以在下面的图 ...

  5. 浅谈SLAM的回环检测技术

    什么是回环检测? 在讲解回环检测前,我们先来了解下回环的概念.在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说 ...

  6. ​综述 | SLAM回环检测方法

    本文作者任旭倩,公众号:计算机视觉life成员,由于格式原因,公式显示可能出问题,建议阅读原文链接:综述 | SLAM回环检测方法 在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿 ...

  7. VINS 回环检测与全局优化

    回环检测 VINS回环检测与全局优化都在pose_graph.cpp内处理.首先在pose_graph_node加载vocabulary文件给BriefDatabase用,如果要加载地图,会loadP ...

  8. 一个基于深度学习回环检测模块的简单双目 SLAM 系统

    转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12634631.html 写在前面 最近在搞本科毕设,关于基于深度学 ...

  9. VINS 检测回环辅助激光建图

    最近接到一个任务,在激光检测回环失败时,比如黑色物体多,场景大等,可否利用视觉进行回环检测.如果只是检测回环,现有的许多框架都可以使用.ORB-SLAM本身就有单目模式,且效果不错.但是发现ORB在检 ...

随机推荐

  1. 【Java编程思想笔记】反射

    文章参考:学习网站 how2java.cn 参考博客:(敬业的小码哥)https://blog.csdn.net/sinat_38259539/article/details/71799078 (青色 ...

  2. Windows2016的 IIS中配置PHP7运行环境

    Windows2016的 IIS中配置PHP7运行环境 在Windows 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 .进入控制面板>>程序和功能>>打开或 ...

  3. 解决 Composer-Setup.exe 安装过程中的报错

    问题 在 Windows 7 执行 Composer-Setup.exe 以安装 Composer 过程中 上图中点击[Next]时,出现如下报错信息 原因分析 由上述提示信息,可推测两方面原因: 1 ...

  4. 十二.HTTPS网站安全访问实践

    期中集群架构-第十二章-HTTPS安全证书访问连接实践配置========================================= 01:网络安全涉及的问题: ①. 网络安全问题-数据机密性 ...

  5. jfinal中,render的时候如何取到view根目录

    https://www.oschina.net/question/138209_63023

  6. JavaScript我学之一变量类型

    本文是网易云课堂金旭亮老师的课程笔记,记录下来,以供备忘. 变量类型  只有6种 : 四种原始数据类型boolean , number, string , undefine, 其他object,fun ...

  7. 在vue里添加好看的lottie动画 (^_^)

    为什么用lottie ★~★ 1.能让你的程序不那么单调 2.能让一些有审美强迫症的同学好受一点 3.网上有丰富的资源 点我进入lottie资源网站 引入lottie库 (>.<) 在vu ...

  8. 利用反射获取数据列+emit生成属性+单例模式

    1:IDictionary<string,string > 可以存储数据,将拼接的sql可以存储到这里下次可以使用 定义自定义属性表和列 typeof(T).GetCustomAttrib ...

  9. ZooKeeper Getting Started Guide

    http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html What is ZooKeeper? ZooKeeper is a centra ...

  10. HBuilder 的使用

    创建一个nui项目 打开index.html才能运行 查看夜神模拟器 创建App标题:mhe :在body中输入mhe让后回车,如果右侧不显示,Ctrl+s保存一下 创建标题:mhe 创建九宫格:mb ...