【C++】链表回环检测
//链表回环检测问题 #include<iostream> #include<cstdlib> using namespace std; const int M=1024; 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=0; while(p) { for(int j=0;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=1;i<=5;i++) { node *t=new node; t->data=i*2; if(i==2) 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=1;i<=5;i++) { node *t=new node; t->data=i*2; p->next=t; p=p->next; p->next=NULL; } /* p=test2->next; while(p) { cout<<p->data<<endl; p=p->next; } */ for(int i=0;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 0; }
tz@HZAU
2019/3/14
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2018-03-14 2014年蓝桥杯省赛A组c++第3题(数组构造+暴力求解)
2018-03-14 2014年蓝桥杯省赛A组c++第1题(暴力求解)
2018-03-14 2014年蓝桥杯省赛A组c++第2题(推公式)
2018-03-14 2016年蓝桥杯省赛A组c++第8题(暴力求解)
2018-03-14 2016年蓝桥杯省赛A组c++第5题(计算机组成原理)
2018-03-14 2016年蓝桥杯省赛A组c++第4题(算法填空)
2018-03-14 2016年蓝桥杯省赛A组c++第2题(暴力求解)