簡體   English   中英

用指針打印二進制搜索樹C ++的奇怪方法

[英]Strange way of printing Binary Search Tree C++ with pointers

我正在聽一次講座,它顯示了一些代碼,像這樣遞歸地打印出二進制搜索樹

void printTree(node *t){
    if(t!=NULL){
        printTree(t->left);
        cout<<t->key<<endl;
        printTree(t->right);
     }
 }

我了解它在做什么,但我不了解這些指針。 該函數正在將指針傳遞到尚未在'cout'行中的節點,它試圖訪問節點結構中的鍵值而不先取消引用它。 我的意思是,不應該是這樣

cout<<(*t)->key<<endl;

代替?

實際上, ->是解引用運算符。 您可以選擇:

cout<<t->key<<endl; cout<<(*t).key<<endl;

但是絕對不是“(* t)-> key”-這將是雙重deref,如果不是崩潰,可能是編譯錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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