簡體   English   中英

std :: forward_list中是否存在循環?

[英]Can a cycle exist in an std::forward_list?

我正在研究Floyd的Tortoise和Hare算法 ,並嘗試使用std :: forward_list建模問題。 具體來說,我想故意使用std::forward_list創建一個循環,並用所述算法檢測它。

(根據下面的評論,不破解界面;也就是說,使用std::forward_list接口來創建循環。)

“問題”是這似乎不可能。 我已經看過構造函數和mutator方法了。 據我所知, std::forward_list的接口阻止了這種循環的發生。 這通常是件好事,除非你准備面試,並且想要故意用循環實現forward_list:^)

是否可以在std :: forward_list中創建一個循環?

參考文獻:

如何檢測鏈表中的循環?
http://en.cppreference.com/w/cpp/container/forward_list
http://codingfreak.blogspot.com/2012/09/detecting-loop-in-singly-linked-list_22.html

forward_list (和list ,就此而言)的接口專門用於隱藏用戶的節點和節點指針的細節。 它們不受設計和抽象的影響。

所以不,他們不會給你自由創建一個格式錯誤的列表。 即使使用splice也不允許你這樣做,因為它會在將它們放入新列表之前從舊列表中刪除它們。

如果要測試循環檢測算法,則必須編寫自己的鏈表類型,以便人們在其中進行循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM