David Hláčik wrote:
so okay, i will create a helping set, where i will be adding elements ID, when element ID will be allready in my helping set i will stop and count number of elements in helping set. This is how long my cycled linked list is.
CPython now does this in printing and marshalling/pickling so that the following terminates instead of going into an infinite spin.
>>> a=[1] >>> b=[2,a] >>> c=[3,b] >>> d=[4,c] >>> a.append(d) >>> a [1, [4, [3, [2, [...]]]]] >>> Sets cannot be recursive because members must be hashable. Dict values do not have to be. So >>> d={1:None} >>> d[1]=d >>> d {1: {...}} >>>
But what if i have another condition , and that is *i can use only helping memory with constant size* ? This means i am not able to create any set and adding elements there. I need to have a constant size variables . This is complication a complication for me.
Interesting problem. If it is homework, there must be an answer. Think time-space tradeoff. However, this of really off-topic here. It not only has nothing in particular to with Python, but an indefinitely long looping linked list is something very unlikely in a Python program since Python is based on array-type lists.
If you do write a solution in Python, you could, however, post it. tjr -- http://mail.python.org/mailman/listinfo/python-list