資源簡介 教學設計課程基本信息課題 二叉樹的基本操作(第二課時)教學目標1. 掌握二叉樹的兩種建立方式。 2. 熟練掌握二叉樹的三種遍歷方式。教學內容教學重點: 1. 二叉樹的建立及遍歷。教學難點: 1. 二叉樹的前、中、后序三種遍歷方式教學過程(1)情境導入 教師展示“貪吃蛇”小游戲畫面,詢問學生是否玩過該游戲,并簡要說說該游戲的原理,同時提出利用“貪吃蛇”游戲思想來解決本節難點部分二叉樹的遍歷,讓學生在玩中學,并保證學生一學就會。 設計意圖:以游戲導入形式引起學生興趣,帶著好奇心進入接下來的學習。 (2)知識講解 教師講解二叉樹建立方法,按照層的順序進行,先由第1層開始,依次到下一層,在每一層中按照從左到右的順序創建節點。用數據和鏈表兩個的數據類型進行節點存儲。 并引導學生針對以下問題進行思考,以自主學習的方式完成任務一。 對于圖中的兩棵二叉樹,請學生閱讀第97,98頁,用數組表示示意圖方式完成“完全二叉樹”和“非完全二叉樹”建立。 設計意圖:以圖片方式,吸引學生參與課堂,感知二叉樹結構,并結合書本和已掌握的知識,以自主學習方式去思考如何用數組方式存儲節點信息。 針對情景導入中的兩棵二叉樹,可以采用數組形式和鏈表形式存儲節點信息。通過學生自主學習完成“完全二叉樹”與“非完全二叉樹”模擬建樹過程。 ①與學生一起模擬二叉樹的數組形式建樹。 ②與學生一起模擬二叉樹的鏈表形式建樹。 設計意圖:二叉樹是一種邏輯結構,形象直觀,但便于計算機處理,需要把非線性結構變成有意義的線性序列。 (3)自主學習與探究 以教材上例子為例,教師講解二叉樹遍歷,即對二叉樹的各個節點進行訪問,即遍歷操作。二叉樹遍歷,是指按照一定的規則和次序訪問二叉樹中的所有節點,使得每個節點都被訪問一次且僅被訪問一次。常見的遍歷有前序遍歷、中序遍歷、后序遍歷等概念性知識。 ①“拋磚引玉”讓學生結合前序遍歷的規則(特點顯著),了解左右子樹先左后右的原則后讓學生觀察前序遍歷流程(如下圖),提出讓學生完成任務二中第1題。 任務二:1.根據“貪吃蛇”游戲原理與前序遍歷的規則,請同學們嘗試畫出二叉樹的“貪吃蛇”的行進路線,并把路線中遇到的節點寫下來。(完成任務單圖2.1的二叉樹前序遍歷) 此時,教師實時提出兩個問題幫助學生思考: 1.根據“貪吃蛇”游戲原理生成的點,是否可以隨機生成? 2.如果不是隨機生成的點,那么生成的點的位置應該哪里? 教師與學生一起總結,前序遍歷的貪吃蛇畫法規律:在所有節點的左側畫點,之后從根節點開始,依次沿著節點進行劃線,并將遇到的點對應的節點寫下來,即為前序遍歷結果。 ②“趁熱打鐵”教師總結完前序遍歷“貪吃蛇”畫法之后,及時提出任務二:2.根據前序遍歷的“貪吃蛇”畫法,嘗試探究二叉樹的中序和后序遍歷畫法。(完成任務單圖2.2和2.3的二叉樹中序和后序遍歷) 教師邀請學生到講臺、展示自己的探究結果 教師與學生一起總結,中序遍歷的貪吃蛇畫法規律:在所有節點的下側畫點,之后從根節點開始,依次沿著節點進行劃線,并將遇到的點對應的節點寫下來,即為中序遍歷結果。 教師與學生一起總結,后序遍歷的貪吃蛇畫法規律:在所有節點的右側畫點,之后從根節點開始,依次沿著節點進行劃線,并將遇到的圈圈對應的節點寫下來,即為后序遍歷結果。 設計意圖:以自主探究的學習方式讓學生結合“貪吃蛇”游戲原理與遍歷規則,用直觀的畫法幫助學生理解和掌握二叉樹的遍歷。 二叉樹遍歷拓展知識:一步一回頭”完成二叉樹的前序或后序的推測 教師詳細介紹:已知前序中序推測后序 例如:前序:A B D H E C F 中序:D H B E A F C 方法描述:根據前序遍歷原則,根節點總是處于遍歷序列之首,確定 A 是根節點,結合中序 A 的位置確定樹的左子樹為:DHBE,右子樹為:FC;在前序中劃出左右子樹部分; 左子樹再結合前序遍歷原則確定 B 是左子樹的根節點,結合中序 B 的位置確定樹的左子樹為:DH,右子樹為:E;在前序中劃出左右子樹部分 左子樹再結合前序遍歷原則確定 D 是左子樹的根節點,結合中序 D 的位置確定 H 是右節點;此時完成二叉樹左子樹構造 開始的右子樹為:FC ,結合前序遍歷原則確定 C 是右子樹的根節點,結合中序 C 的位置確定F 是左節點此時完成二叉樹的構造 提出任務:結合“一步一回頭”推測思路,請同學們完成已知中序和后序來推測前序 (4)二叉樹的實踐與體驗 在本章學習中,我們已經掌握了二叉樹遍歷的各種方法,下面將通過Python語言的程序實現來進一步體驗二叉樹的遍歷機制。 實踐內容: 給出事先設計好的二叉樹結構圖,分別寫出前序、中序和后序的遍歷結果。通過輸入Python程序分別建立、遍歷二叉樹,運行程序輸出各種遍歷結果,完成驗證和體驗。 實踐步驟: 1.給定下面的二叉樹,如右圖所示。 2.分別寫出該二叉樹的前序、中序和后序遍歷的序列。 前序遍歷: 中序遍歷: 后序遍歷: 3.打開程序true.py二叉樹代碼。 結果呈現:基于上述實踐任務,完成程序體驗和結果驗證。 內容結果情況運行程序,對比自己所寫的遍歷序列與程序輸出的結果是否一致 嘗試修改程序中的節點信息,輸出書本第100頁,如圖4.2.8所示的表達式樹的各種遍歷序列,完成結果驗證。前: 中: 后:設計意圖:讓學生通過實際的上機體驗二叉樹的建立過程和遍歷過程,同時驗證二叉樹遍歷的結果是否正確,加深學生對遍歷的程序性理解。 (5)課堂小結 知識梳理 ①二叉樹的建立。 建立的方法:從上到下,從左到右 數據的結構:數組和鏈表 ②二叉樹的遍歷 前序遍歷:根-左-右 中序遍歷:左-根-右 后序遍歷:左-右-根 ③程序驗證與體驗 (6)作業布置 基礎作業(面向所有學生) ①完成作業練習 ②思考教材“問題與討論”中用二叉樹描述成績等級。 ③完成教材“思考與練習”中的列舉數據結構、數據類型和抽象數據類型三者之間的聯系和區別。 設計意圖:課后作業是課堂學習的延伸,是鞏固和升華知識點的有效途徑。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫