簡體   English   中英

node* 和 *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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM