memgraph/test_skip.cpp
2015-07-07 16:18:26 +02:00

51 lines
1.6 KiB
C++

#include <iostream>
#include "data_structures/skiplist/skiplist.hpp"
int main(void)
{
xorshift::init();
SkipList<int, int> skiplist;
int k1 = 1;
int i1 = 10;
int k2 = 2;
int i2 = 20;
std::cout << "find: " << k1 << " => " << (skiplist.find(&k1) == nullptr) << std::endl;
std::cout << skiplist.insert(&k1, &i1) << std::endl;
std::cout << "find: " << k1 << " => " << *skiplist.find(&k1)->item << std::endl;
std::cout << "find: " << k2 << " => " << (skiplist.find(&k2) == nullptr) << std::endl;
std::cout << skiplist.insert(&k2, &i2) << std::endl;
std::cout << skiplist.insert(&k2, &i2) << std::endl;
std::cout << skiplist.insert(&k1, &i1) << std::endl;
std::cout << skiplist.insert(&k2, &i2) << std::endl;
std::cout << "DELETE K1 " << skiplist.remove(&k1) << std::endl;
std::cout << "find: " << k1 << " => " << (skiplist.find(&k1) == nullptr) << std::endl;
std::cout << "find: " << k2 << " => " << *skiplist.find(&k2)->item << std::endl;
std::cout << skiplist.size() << std::endl;
auto* node = skiplist.header.load(std::memory_order_consume);
for(size_t i = 0; i < skiplist.size(); ++i)
{
node = node->forward(0);
if(node == nullptr)
std::cout << "node == nullptr" << std::endl;
if(node->key == nullptr)
std::cout << "node->key == nullptr" << std::endl;
if(node->item == nullptr)
std::cout << "node->item == nullptr" << std::endl;
std::cout << *node->key << " => " << *node->item << std::endl;
}
return 0;
}