【正文】
滿二叉樹與完全二叉樹 滿二叉樹:除最后一層外,每一層上的所有結(jié)點都有兩個子結(jié)點。 下圖a表示的是滿二叉樹,下圖b表示的是完全二叉樹: 二叉樹的遍歷 ★★★★ 二叉樹的遍歷是指不重復(fù)地訪問二叉樹中的所有結(jié)點。否則:首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。否則:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。否則:首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點,并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點. 該二叉樹前序遍歷為:F C A D B E G H P 該二叉樹中序遍歷為:A C B D F E H G P 該二叉樹后序遍歷為:A B D C H P G E F 查找技術(shù) 查找:根據(jù)給定的某個值,在查找表中確定一個其關(guān)鍵字等于給定值的數(shù)據(jù)元素。) 平均查找長度:查找過程中關(guān)鍵字和給定值比較的平均次數(shù)?! ? 排序技術(shù) 排序是指將一個無序序列整理成按值非遞減順序排列的有序序列。 形成良好的程序設(shè)計風(fēng)格需注意: 源程序文檔化; 數(shù)據(jù)說明的方法; 語句的結(jié)構(gòu); 輸入和輸出。 語句結(jié)構(gòu)清晰第一、效率第二。 結(jié)構(gòu)化程序的基本結(jié)構(gòu)及特點: (1)順序結(jié)構(gòu):一種簡單的程序設(shè)計,最基本、最常用的結(jié)構(gòu); (2)選擇結(jié)構(gòu):又稱分支結(jié)構(gòu),包括簡單選擇和多分支選擇結(jié)構(gòu),可根據(jù)條件,判斷應(yīng)該選擇哪一條分支來執(zhí)行相應(yīng)的語句序列; (3)循環(huán)結(jié)構(gòu):又稱重復(fù)結(jié)構(gòu),可根據(jù)給定條件,判斷是否需要重復(fù)執(zhí)行某一相同或類似的程序段。 對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?,可以用來表示客觀世界中的任何實體,對象是實體的抽象。 操作描述了對象執(zhí)行的功能,是對象的動態(tài)屬性,操作也稱為方法或服務(wù)。 類是指具有共同屬性、共同方法的對象的集合。類是對象的抽象,對象是其對應(yīng)類的一個實例。對象間的通信靠消息傳遞。 繼承是使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù),廣義指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義他們。 繼承分單繼承和多重繼承。2011年全國計算機等級考試二級公共基礎(chǔ)知識總結(jié):第三章 軟件工程基本概念 軟件的相關(guān)概念 計算機軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。 軟件危機與軟件工程 軟件工程源自軟件危機?! ≤浖こ痰闹饕枷胧菍⒐こ袒瓌t運用到軟件開發(fā)過程,它包括3個要素:方法、工具和過程?! ≤浖こ踢^程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動。 軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護三個階段: 1)軟件定義階段:包括制定計劃和需求分析?! ⌒枨蠓治觯簩Υ_發(fā)軟件提出的需求進行分析并給出詳細的定義。 軟件實現(xiàn):把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼。 3)軟件運行維護階段:軟件投入運行,并在使用中不斷地維護,進行必要的擴充和刪改?! ?2)軟件工程需要達到的基本目標應(yīng)是:付出較低的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護費用;能按時完成開發(fā),及時交付使用?! ?)抽象: 2)信息隱蔽: 3)模塊化: 4)局部化: 5)確定性: 6)一致性: 7)完備性: 8)可驗證性: 結(jié)構(gòu)化分析方法 需求分析 需求分析方法有:1)結(jié)構(gòu)化需求分析方法;2)面向?qū)ο蟮姆治龇椒?。 結(jié)構(gòu)化分析方法的實質(zhì):著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型?! ?shù)據(jù)流圖的基本圖形元素: 加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出?! 〈鎯ξ募?數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。 結(jié)構(gòu)化設(shè)計方法 軟件設(shè)計的基礎(chǔ) 從技術(shù)觀點來看,軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計。 概要設(shè)計:又稱結(jié)構(gòu)設(shè)計,將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級接口、全局數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式?! ≤浖O(shè)計的基本原理包括:抽象、模塊化、信息隱蔽和模塊獨立性。抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來而不考慮其他細節(jié)。解決一個復(fù)雜問題時自頂向下逐步把軟件系統(tǒng)劃分成一個個較小的、相對獨立但又不相互關(guān)聯(lián)的模塊的過程。每個模塊的實施細節(jié)對于其他模塊來說是隱蔽的。軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡單的。 模塊的耦合性和內(nèi)聚性是衡量軟件的模塊獨立性的兩個定性指標?! ?:按內(nèi)聚性由弱到強排列