【发布时间】:2015-02-27 06:34:19
【问题描述】:
我试着问我的问题,但我似乎没有正确地问它,而且我已经被困 2 个月了。 (很伤心)
仅供参考:我从节点构建了一个链表:
struct node {
int number;
node *next; };
在我使用的 main 中链接这些 -> 分配值
void insertAsFirstElement(node *&head, node *&tail, int number){
node *temp = new node;
temp->number = number;
temp->next = NULL;
head = temp;
tail = temp; }
现在我正在尝试创建一个跳过列表,它应该与我的原始节点具有相同的结构,除了 node* next 应该是节点类型的指针数组。
struct node {
int number;
node *next[3];
};
我对如何拥有一个节点指针数组感到困惑。我注意到它们往往看起来像这样: node **next 然后声明动态分配内存。我只希望我的数组大小为 4。所以 [3]。
我的问题是如何使用 main() 中的节点指针数组创建新节点并将某些内容放入节点数组的第一个插槽中?
这不适用于将事物放入数组中,但可以用于放入数字。
void insertAsFirstElement(node *&head, node *&tail, int number){
node *temp = new node;
temp->number = number;
cout<<temp->number<<endl;
temp->next[0] = tail;
cout<<temp->next[0]<<endl;
head->next[0] = temp;
cout<<head->next[0]<<endl;
}
请帮助我。
【问题讨论】:
-
"这不起作用";你有语法/编译器错误吗?还是行为错误/段错误?
-
简短评论:4 个 big 的数组分配为
node* next[4]。索引第 4 个元素是mynode->next[3]。
标签: c++ arrays pointers linked-list skip-lists