如何使用我的跳过列表节点

时间:2015-02-26 11:07:02

标签: c++ skip-lists

我已经坚持了2个月,尝试过导师和互联网。我觉得它已经恶化了很长时间,以至于我所学到的一切都是从窗户飞进垃圾桶。

我想声明一个跳过列表节点,然后使用它。我无法弄清楚如何初始化和访问我的节点数组。我认为节点将我的数组初始化为全NULL,但为什么我不能将我的节点数组index [0]设置为指向前面的节点索引[0]?

这是我的节点:

struct node 
{
    int number;
	node **next; 
	
	node(int &number, int level)
	{
		next = new node*[level];
		for(int i = 0; i<level;i++)
			next[i] = NULL;
		this->number = number;
	}
	
};

我没有列表的结构我只是在主

中组装它

int main(){

	node *head = NULL; //create the head sentinel
	node *tail = NULL;  //create the tail sentinel
	char choice;
	int number;
	
	do{
		choice = menu();
		switch(choice){
			case '1': 	cout<< "Please enter a number: ";
						cin>> number;
						insert(head, tail, number);
						break;

然后我想将headSentinels附加到我的第一个节点。

void insertAsFirstElement(node *&head, node *&tail, int number)
{

	node *temp = new node(number, 3); 
	temp->number = number;
	head->next[0] = temp;
	temp->next[0] = tail; 
	
}

如果我能弄清楚如何使用main中的节点,那么我可以找出其余的跳过列表。有什么东西把我绑起来,这可能很容易。

我可以编译我的程序,但是当我尝试插入数字时,我会遇到分段错误。

我只是想先在数组[0]上组装一个链表,然后才开始把它作为一个实际的跳过列表

0 个答案:

没有答案