Список пропуска с каждым столбцом, имеющим целое число, вместо копирования объектовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Список пропуска с каждым столбцом, имеющим целое число, вместо копирования объектов

Сообщение Anonymous »

Я попробовал лучшее внедрение списка Skip в C ++, в котором у меня была особая идея, которую я хотел попробовать. Вместо этого наличие каждого элемента на базовом уровне является вектором столбцов, у меня есть только одному на основе списка на базовом уровне, и я храню простые целые числа относительно того, в каком уровне они находятся.while(coinFilp() == heads) {
node.level++
}
< /code>
, а затем я использовал node.level в качестве индикатора высоты. < /p>
Ниже приведено, как я реализовал список пропуска: < /p>
Iterator after(int level, Iterator it)
{

Node *cNode = it.currentNode;
Node *nextNode = cNode->next;

while (nextNode->level < level && nextNode != ll.getTrailer())
{
nextNode = nextNode->next;
}
return Iterator(nextNode);
}

Iterator skipSearch(T v)
{
Iterator n = Iterator(s);
int currentLevel = s->level;

while (currentLevel > -1)
{

n = Iterator(s);

// make sure one is not null
while (after(currentLevel, n).currentNode != ll.getTrailer() && after(currentLevel, n).getValue() < v)
{
n = after(currentLevel, n);
}
currentLevel--;
}
return n;
}

Iterator skipInsert(T v)
{
Iterator it = skipSearch(v);
Iterator newElement = insertAfterSkip(v, it);
Node *n = newElement.currentNode;

while (n->level >= currentLevel)
{
incrementLevel();
}
return newElement;
}

void incrementLevel()
{
s->level++;
ll.getTrailer()->level++;
currentLevel++;
}

private:
Iterator insertAfterSkip(T val, Iterator p)
{

Iterator it = after(0, p);
Node *no = ll.insert(val, *(it.currentNode));
n++;
return Iterator(*no);
}

< /code>
Это всего лишь несколько методов в моей реализации списка Skip. Я имею в виду, что я чувствую, что вместо копирования объекта определенное количество раз, мы можем просто дать ему случайное число, и это будет его уровень. Во -первых, правильная ли эта реализация списка Skip? И назначает ли число вместо копирования объектов лучшим способом приблизиться к нему?
спасибо

Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-objects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»