Quote:
yes, then all of this works. I don't even think I'll need an index any more (an index changes, after all, when I remove a part of the list... doesn't it?).

Yes, when adding or removing an element, the indices of all following elements will change. Searching list elements by their index (and in general) is slow anyway, as you have only sequential access to them. So to access list elements randomly, storing pointers to them is the best and fastest way.