Быстрый циклический массив

Я должен реализовать циклический массив. Использование памяти не имеет значения, мне просто нужно как можно меньше заниматься арифметикой. Мой лучший способ сделать это:

  1. Создать массив T[L]
  2. Создать массив S[L+2]
  3. заполнить S как это

    S[0]   = L-1
    S[L+1] = 0
    S[i+1] = i, i=0,1...L-1
    
  4. затем

    T[x] = T[S[x+1])
    T[-1] = T[S[0]]   = T[L-1] // last element
    T[L]  = T[S[L+1]] = T[0]   // first element
    
  5. Например:

    T[-1] = T[S[1]]   = T[L-1] // last element
    T[L]  = T[S[L+1]] = T[0]   // first element
    

0 ответов

Другие вопросы по тегам