專題九:數(shù)據(jù)結(jié)構(gòu)知識
數(shù)據(jù)結(jié)構(gòu)是計算機軟件的一門基礎(chǔ)課程,計算機科學(xué)各個領(lǐng)域及有關(guān)的應(yīng)用軟件都要用到各種數(shù)據(jù)結(jié)構(gòu).語言編譯要使用棧、散列表及語法樹;操作系統(tǒng)中用隊列、存儲管理表及目錄樹等;數(shù)據(jù)庫系統(tǒng)運用線性表、多鏈表及索引樹等進行數(shù)據(jù)管理;而在人工智能領(lǐng)域,依求解問題性質(zhì)的差異將涉及到各種不同的數(shù)據(jù)結(jié)構(gòu),如廣義表、集合、搜索樹及各種有向圖等等。學(xué)習數(shù)據(jù)結(jié)構(gòu)目的是要熟悉一些最常用的數(shù)據(jù)結(jié)構(gòu),明確數(shù)據(jù)結(jié)構(gòu)內(nèi)在的邏輯關(guān)系,知道它們在計算機中的存儲表示,并結(jié)合各種典型應(yīng)用說明它們在進行各種操作時的動態(tài)性質(zhì)及實際的執(zhí)行算法,進一步提高軟件計和編程水平。通過對不同存儲結(jié)構(gòu)和相應(yīng)算法的對比,增強我們根據(jù)求解問題的性質(zhì)選擇合理的數(shù)據(jù)結(jié)構(gòu),并將問題求解算法的空間、時間及復(fù)雜性控制在一定范圍的能力。
軟件設(shè)計師考試大綱對數(shù)據(jù)結(jié)構(gòu)部分的要求是熟練掌握常用數(shù)據(jù)結(jié)構(gòu)和常用算法,因此,本專題從數(shù)據(jù)結(jié)構(gòu)的概述出發(fā),對基本的概念引出常用的數(shù)據(jù)結(jié)構(gòu)類型的介紹和講解,同時在講解各種數(shù)據(jù)結(jié)構(gòu)中間采用算法與數(shù)據(jù)結(jié)構(gòu)相結(jié)合的方式,在算法步驟中使用數(shù)據(jù)結(jié)構(gòu),對數(shù)據(jù)結(jié)構(gòu)的重點、難點進行了分析,最后講解了與數(shù)據(jù)結(jié)構(gòu)緊密相關(guān)的排序和查找算法,以及一些以往考試題的分析。
1. 數(shù)據(jù)結(jié)構(gòu)概述
數(shù)據(jù)結(jié)構(gòu)研究了計算機需要處理的數(shù)據(jù)對象和對象之間的關(guān)系;刻畫了應(yīng)用中涉及到的數(shù)據(jù)的邏輯組織;也描述了數(shù)據(jù)在計算機中如何存儲、傳送、轉(zhuǎn)換。
學(xué)習數(shù)據(jù)結(jié)構(gòu)注意的問題:
n 系統(tǒng)掌握基本數(shù)據(jù)結(jié)構(gòu)的特點及其不同實現(xiàn)。
n 了解并掌握各種數(shù)據(jù)結(jié)構(gòu)上主要操作的實現(xiàn)及其性能(時間、空間)的分析。
n 掌握各種數(shù)據(jù)結(jié)構(gòu)的使用特性,在算法設(shè)計中能夠進行選擇。
n 掌握常用的遞歸、回溯、迭代、遞推等方法的設(shè)計
n 掌握自頂向下、逐步求精的程序設(shè)計方法。
n 掌握自頂向下、逐步求精的程序設(shè)計方法。
在學(xué)習數(shù)據(jù)結(jié)構(gòu)的知識之前,我們要了解一下數(shù)據(jù)結(jié)構(gòu)中的基本概念。
數(shù)據(jù):對客觀事物的符號表示,在計算機中就是指所有能輸入到計算機中并被計算機程序所處理的符號的總稱。
數(shù)據(jù)項: 是數(shù)據(jù)的不可分割的最小單位;
數(shù)據(jù)元素:是數(shù)據(jù)的基本單位,在計算機程序中通常作為一個整體進行處理;一個數(shù)據(jù)元素可由若干個數(shù)據(jù)項組成。
數(shù)據(jù)對象:是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。
數(shù)據(jù)結(jié)構(gòu)上的基本操作: ◆插入操作 ◆刪除操作 ◆更新操作 ◆查找操作 ◆排序操作
數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)對象及相互關(guān)系和構(gòu)造方法,一個數(shù)據(jù)結(jié)構(gòu)B形式上可以用一個二元組表示為B=(A,R)。其中,A是數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)(稱為結(jié)點)的非空有限集合,R是定義在A上的關(guān)系的非空有限集合。
根據(jù)數(shù)據(jù)元素之間的關(guān)系的不同特性,通常有下列4類基本結(jié)構(gòu)。
Ø 集合——結(jié)構(gòu)中的數(shù)據(jù)元素除了“同屬于一個集合”的關(guān)系外,別無其他關(guān)系。
Ø 線性結(jié)構(gòu)——結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一個對一個的關(guān)系。
Ø 樹形結(jié)構(gòu)——結(jié)構(gòu)中的元素之間存在一個對多個的關(guān)系。
Ø 圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)——結(jié)構(gòu)中的元素之間存在多個對多個的關(guān)系。
數(shù)據(jù)結(jié)構(gòu)中,結(jié)點與結(jié)點間的相互關(guān)系是數(shù)據(jù)的邏輯結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)在計算機中的表示(又稱為映象)稱為數(shù)據(jù)的物理結(jié)構(gòu),也稱存儲結(jié)構(gòu)。
數(shù)據(jù)元素之間的關(guān)系在計算機中有兩種不同的表示方式:順序映象和非順序映象,并由此得到兩種不同的存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。
任何一個算法的設(shè)計取決于選定的數(shù)據(jù)(邏輯)結(jié)構(gòu),而算法的實現(xiàn)依賴于采用的存儲結(jié)構(gòu)。
數(shù)據(jù)的邏輯結(jié)構(gòu)分為兩類:
線性結(jié)構(gòu):線性表、棧、隊列和串
非線性結(jié)構(gòu):樹、圖
數(shù)據(jù)的存儲方法有四類:
順序存儲方法
鏈接存儲方法
索引存儲方法
散列存儲方法
相關(guān)推薦:2010年軟件水平考試軟件設(shè)計師專題講義匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |