#include <stdio.h>
#include <stdlib.h>
#define LEVEL 4
int level_random()
{
return rand() % LEVEL;
}
int my_random(int mode)
{
return rand() % mode;
}
typedef struct _SkipList
{
int key;
int value;
struct _SkipList* next[4];
}* SkipList;
SkipList initHead()
{
SkipList head = (SkipList)malloc(sizeof(struct _SkipList));
head->value = 0;
head->value = 0;
int i = 0;
for (i = 0; i < LEVEL; ++i)
{
head->next[i] = NULL;
}
return head;
}
SkipList insert(int key_in, int value_in, SkipList head)
{
int new_level = level_random();
int i = 0;
SkipList tmp_node = head;
SkipList last_node = head;
SkipList new_node = (SkipList)malloc(sizeof(struct _SkipList));
new_node->key = key_in;
new_node->value = value_in;
for (i = 0; i < LEVEL; ++i)
{
new_node->next[i] = NULL;
}
for (i = 0; i <= new_level; ++i)
{
skiplist的简单实现(c语言版)
最新推荐文章于 2024-04-11 10:44:52 发布
这篇博客介绍了如何使用C语言实现跳表(SkipList),包括初始化头节点、插入元素、打印各级别节点和搜索元素等操作。通过示例展示了如何创建一个跳表并进行一系列操作。
摘要由CSDN通过智能技术生成