參考
在做一道經典的深度優先搜尋二叉樹的題目時遇到乙個問題,即c++中將結構體指標作為引數傳遞時,並不會改變實參的值!原因是當結構體指標傳遞給函式時,會拷貝乙份指標的值,但是函式內部的指標和函式外部的指標並不是指向同乙個引用的,所以才會使得函式裡面改變了,但是函式外部無變化,解決方案是在傳參的時候,將結構體指標的引用傳遞過去。
//結構體指標做引數不會改變形參的值!需要傳引用
//開始我傳的是treenode* res
bool
dfs(treenode* node,treenode* p,treenode* q,treenode*
& res)
//中序遍歷.需要先確定左右子樹中是否含p,q,再考慮根節點的情況
//深搜至樹的最底層,直至node==null返回false,從最深處葉子節點開始更新。則初始lson/rson為false
bool lson =
dfs(node-
>left,p,q,res)
;bool rson =
dfs(node-
>right,p,q,res)
;//滿足條件則記錄結果if(
(lson&&rson)||(
(node==p||node==q)
&&(lson||rson)))
//若當前遍歷到的節點是p或q,或者之前的遞迴過程已使lson/rson為真(即p或q已找到),返回true
return node==p||node==q||lson||rson;}}
;
結構體型別指標做函式引數(C
因為用到了這塊,所以轉了一篇文章。設有學生情況登記表如圖所示,用選擇排序法對該錶按從小到大進行排序。學生情況登記表 學號num 姓名name 8 性別 年齡age 成績score 101zhangm19 95.6 102zhaom20 89.0 103wangf18 96.5 104shanm20 ...
結構體做函式引數 c
作用 將結構體作為引數箱函式中傳遞 傳遞的方式 include includeusing namespace std 定義學生結構體 struct student 列印學生資訊的函式 1 值傳遞 void printstuinfo struct student s 位址傳遞,外側的資料也會發生變化 ...
用結構體變數和結構體變數的指標做引數函式
例題 有n個結構體變數,內含學生學號 姓名和3門課程的成績。要求輸出平均成績最高的學生的資訊 包括學號 姓名 3門課程成績和平均成績 實現 include define n 3 學生數為3 struct student 建立結構體型別 struct student stu n p stu 定義結構體...