![](/img/trans.png)
[英]What is the difference in '->' between struct node and struct node*?
[英]what is the difference between node* and *node?
在下面的 C++ 中的二叉樹實現中,使用指針 node* 和 *node 的區別是什么。我對指針的實現很弱。
struct node
{
int data;
struct node *left;
struct node *right;
};
struct node* newNode(int data)
{
struct node* node = (struct node*)malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
return(node);
}
int main()
{
struct node *root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
getchar();
return 0;
}
使用相同的名稱數據類型和對象名稱是相當糟糕的做法。
struct structnode
{
int data;
struct structnode *left;
struct structnode *right;
};
struct structnode* newNode(int data)
{
struct structnode* node = (struct node*)malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
return(node);
}
int main()
{
struct structnode *root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
getchar();
return 0;
}
現在混亂已經消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.