फ्लॉयड चक्र, एक दिए गए सिंगली लिंक्ड सूची में चक्र का पता लगाने के लिए चक्र पहचान एल्गोरिदम में से एक है।
फ्लॉयड चक्र एल्गोरिदम में, हमारे पास दो पॉइंटर्स होते हैं जो प्रारंभ में हेड पर इंगित करते हैं। खरगोश और कछुए की कहानी में, खरगोश कछुए से दोगुनी तेजी से चलता है, और जब भी खरगोश पथ के अंत तक पहुंचता है, कछुआ पथ के मध्य तक पहुंचता है।
एल्गोरिदम
खरगोश (Hare) और कछुए (Tortoise) को सूची के हेड नोड पर आरंभ करें।
प्रारंभ में, खरगोश कछुए से दोगुनी तेजी से चलता है।
खरगोश और कछुए दोनों को आगे बढ़ाएं और पता लगाएं कि क्या खरगोश लिंक्ड सूची के अंत तक पहुंचता है, तो लौटें क्योंकि सूची में कोई लूप नहीं है।
अन्यथा, दोनों खरगोश और कछुआ आगे बढ़ेंगे।
यदि खरगोश और कछुआ एक ही नोड पर हैं, तो लौटें क्योंकि हमें सूची चक्र मिल गया है।
अन्यथा, चरण 2 से शुरू करें।
उपरोक्त एल्गोरिदम के लिए छद्म कोड
tortoise := headNode
hare := headNode
foreach:
if hare == end
return 'There is No Loop Found.'
hare := hare.next
if hare == end
return 'No Loop Found'
hare = hare.next
tortoise = tortoise.next
if hare == tortoise
return 'Cycle Detected'