0

我已经坚持了两个月了,尝试了导师和互联网。我想它已经溃烂了这么久,以至于我学到的一切都从窗户飞到垃圾桶里。

我想声明一个跳过列表节点然后使用它。我不知道如何初始化和访问我的节点数组。我认为节点将我的数组初始化为全NULL,但是为什么我不能将我的节点数组索引[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;
	}
	
};

我没有列表结构,我只是在 main 中组装它

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] 上组装一个链表,然后再开始使其成为实际的跳过列表

4

0 回答 0