我已经坚持了两个月了,尝试了导师和互联网。我想它已经溃烂了这么久,以至于我学到的一切都从窗户飞到垃圾桶里。
我想声明一个跳过列表节点然后使用它。我不知道如何初始化和访问我的节点数组。我认为节点将我的数组初始化为全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] 上组装一个链表,然后再开始使其成为实际的跳过列表