Циклический список - C# (218663)
Формулировка задачи:
Здраствуйте, товарищи!
Не могу додумать мысль, помогите пожалуйста.
Нужен список, циклический(Допустим метод Next() возращает след. элемент списка, Prev() - пред. эл.), чтобы в любой момент можно было удалить(добавить) к нему элемент(Макс число - 8). Если есть пустое место(например с индексом 2,5,7), то добавляем в lists[2] и т.п.
Что можете посоветовать?
ЗЫ Думал уже над решением, но хотелось бы услышать идеи со стороны.
Решение задачи: «Циклический список»
textual
Листинг программы
class CycleList
{
object[] objArray;
int index;
public CycleList()
{
objArray = new object[8];
index = 0;
}
public object Next()
{
if (++index > objArray.Length - 1)
index = 0;
return objArray[index];
}
public object Prev()
{
if (--index < 0)
index = objArray.Length - 1;
return objArray[index];
}
public object Current
{
get { return objArray[index]; }
}
public int Index
{ get { return index; } }
public void Delete(int index)
{
if (index < 0 && index > objArray.Length - 1)
return;
objArray[index] = null;
}
public bool Add(object obj)
{
for (int i = 0; i < objArray.Length; i++)
if (objArray[i] == null)
{
objArray[i] = obj;
return true;
}
return false;
}
}