gpt4 book ai didi

c++ - 如何在 main 中使用指针数组?

转载 作者:行者123 更新时间:2023-11-30 01:49:37 24 4
gpt4 key购买 nike

我试着问我的问题,但我似乎没有问对,我已经被困了 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;
}

请帮帮我。

最佳答案

-> 运算符是简写。

如果没有 -> 运算符,您将编写

(*var).prop;

使用 -> 运算符,您可以编写:

var->prop;

因此,要在列表的第一个位置存储一个节点,您可以这样写:

void StoreNode(node *node){
node *temp = new node;
temp->next[0]=node;
}

要从列表中的节点检索数据,您可以这样写:

temp->next[0]->number

这和写是一样的

(*temp).next[0]->number

这和写是一样的

( *((*temp).next[0]) ).number

这行代码看起来有点困惑:

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

请记住,您只是将节点地址传递给函数。因此,您只需要

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

在函数内部,您必须在列表中找到正确的位置,即进入 ** 符号时。

关于c++ - 如何在 main 中使用指针数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28758943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com