學習習工業控制知識,來工控小鑫。
農曆十一月初六
過去推薦
2023 年 12 月 17 日,每天花一分鐘練習 習 C:如何解決 C 中的經典動態規劃問題:陣列跳躍遊戲。2023 年 12 月 16 日,這個 C 語言的程式設計問題可能是你見過的最簡單的矩陣運算!
每天練習一次
daily exercises
主題:給定乙個二叉樹,檢查它是否是映象對稱的
主題分析
二叉樹是一種常見的資料結構,由乙個根節點和兩個子節點組成,每個子節點也可以是二叉樹。 如果二叉樹的左右子樹是映象的,即它們具有相同的結構,但相應的節點具有相反的值,則二叉樹是對稱的。 例如,以下二叉樹是對稱的:
為了解決這個問題,我們可以利用遞迴的思想,將原來的問題分解成子問題。 具體來說,我們可以定義乙個函式來確定兩個二叉樹是否映象。 函式的引數是兩個二叉樹的根節點,函式的返回值是乙個布林值,指示是否映象。
該函式的邏輯如下:
如果兩個根節點都是空的,則對它們進行映象,返回 true。
如果兩個根節點中的乙個為空,或者它們的值不相等,則它們不會映象並返回 false。
如果兩個根節點的值相等,那麼我們需要遞迴地判斷它們的子樹是否映象,具體來說,我們需要判斷左子樹的左子樹和右子樹的右子樹是否映象,如果左子樹的右子樹和右子樹的左子樹映象, 如果兩者兼而有之,則它們將被映象,返回 true,否則返回 false。
為了實現這個演算法,我們需要定義乙個表示二叉樹節點的結構。 struct 的成員包括節點的值,以及指向左右子節點的指標。 然後,我們需要定義乙個函式來確定兩個二叉樹是否映象。 函式的引數和返回值與上述邏輯相同。
專案介紹
匯入標準 I/O 庫 include 定義乙個結構體,用於表示二叉樹的節點,與偽結構體 treenode 相同; 定義乙個判斷函式來判斷兩個二叉樹是否映象,這與偽布林相同 ismirror(struct treenode* p, struct treenode* q) if (p == null ||q == null ||p->val != q->val) return ismirror(p->left, q->right) &ismirror(p->right, q->left);} 定義乙個輔助函式來建立二叉樹的節點,引數是節點的值,返回值是節點結構樹的指標 createnode(int val) 定義 main 函式,用於測試和判斷函式 int main()。程式測試這個 C 程式可以在 VC6 中找到0,輸出如下:
編寫乙個程式,要求使用者輸入分數,然後將其近似為最簡單的形式。秋冬入住挑戰