struct Node *addToEmpty(struct Node *last, int data)
{
// This function is only for empty list
if (last != NULL)
return last;
// Creating a node dynamically.
struct Node *temp =
(struct Node*)malloc(sizeof(struct Node));
// Assigning the data.
temp -> data = data;
last = temp;
// Creating the link.
last -> next = last;
return last;
}
struct Node *addBegin(struct Node *last, int data)
{
if (last == NULL)
return addToEmpty(last, data);
struct Node *temp =
(struct Node *)malloc(sizeof(struct Node));
temp -> data = data;
temp -> next = last -> next;
last -> next = temp;
return last;
}
我想知道为什么使用“ * addToEmpty”而不是“ addToEmpty”。
“ *”在结构中是什么意思?
我知道这是基本问题。但我找不到答案。
如果您回答我的问题,今天我会过得很好
P.S。这是c ++代码。
答案 0 :(得分:5)
这是C(++)[Pun意向]的A和B。
在此函数中,您将返回指向节点struct的指针...
您要我们教您指针的基础知识。看看https://en.cppreference.com/w/cpp/language/pointer或Google“在C ++中使用指针”,将对所有内容进行说明。
答案 1 :(得分:3)
只需更改阅读方式:
struct Node
意味着我们返回Node
类型的结构。在c ++中,struct关键字不是必需的。
现在*属于返回类型,而不属于函数名称。 struct Node *
是指向类型Node
addToEmpty
是函数名称。
如果您更清楚,也可以写Node* addToEmpty
。这只是个人喜好,更清楚地说明addToEmpty
返回Node*
(指向Node
的指针)