萬淑蘭
摘要:數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學、計算機硬件和計算機軟件之間的一門計算機科學與技術(shù)專業(yè)的核心課程,是高級程序設計語言、編譯原理、操作系統(tǒng)、數(shù)據(jù)庫、人工智能等課程的基礎。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu) 算法 非數(shù)值計算 操作對象
一、課程簡介
《數(shù)據(jù)結(jié)構(gòu)》是計算機專業(yè)一門重要的專業(yè)技術(shù)基礎課程。 數(shù)據(jù)結(jié)構(gòu)的研究范圍主要涉及數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和操作的實現(xiàn),以及常用的查找和排序技術(shù)。其內(nèi)容是程序設計(特別是非數(shù)值計算的程序設計)的基礎,也是設計和實現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)系統(tǒng)及其它系統(tǒng)程序和大型應用程序的重要基礎。
?通過這門課程的學習,使學生在軟件開發(fā)的過程中能夠正確、合理地選擇數(shù)據(jù)的存儲結(jié)構(gòu),有效地設計算法,從而提高軟件整體質(zhì)量。 本課程的學習將為后續(xù)課程的學習以及軟件設計水平的提高打下良好的基礎。
數(shù)據(jù)結(jié)構(gòu)是計算機科學技術(shù)、信息管理等專業(yè)的核心課程之一,是一門理論與工程實踐密切相關(guān)的綜合性課程,在計算機學科教學中具有十分重要的作用。大力加強數(shù)據(jù)結(jié)構(gòu)課程的建設,提高數(shù)據(jù)結(jié)構(gòu)課程的教學質(zhì)量,有利于教學改革和教育創(chuàng)新,有利于高級應用型人才和創(chuàng)新人才的培養(yǎng)。
二、數(shù)據(jù)結(jié)構(gòu)的地位
《數(shù)據(jù)結(jié)構(gòu)》作為一門獨立的課程最早是在美國的一些大學開設的,1968年美國Donald .Knuth教授開創(chuàng)了數(shù)據(jù)結(jié)構(gòu)的最初體系,他所著的《計算機程序設計技巧》系統(tǒng)地闡述數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)及其操作的著作,是《數(shù)據(jù)結(jié)構(gòu)》的經(jīng)典之作。20世紀60年代末出現(xiàn)了大型程序,軟件也相對獨立,結(jié)構(gòu)程序設計成為程序設計方法學的主要內(nèi)容,人們越來越重視數(shù)據(jù)結(jié)構(gòu),認為程序設計的實質(zhì)是對確定的問題選擇一種好的結(jié)構(gòu),加上設計一種好的算法,即程序=數(shù)據(jù)結(jié)構(gòu)+算法。從70年代開始,《數(shù)據(jù)結(jié)構(gòu)》得到了迅速發(fā)展,數(shù)據(jù)結(jié)構(gòu)的研究不僅涉及到計算機硬件,而且和計算機軟件的研究有著更密切的關(guān)系,無論是編譯程序、操作系統(tǒng)、數(shù)據(jù)庫還是信息檢索,都涉及到數(shù)據(jù)元素的組織以及在存儲器中的分配。數(shù)據(jù)結(jié)構(gòu)技術(shù)成為設計和實現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)系統(tǒng)及其它系統(tǒng)程序和大型應用程序的關(guān)鍵技術(shù)。《數(shù)據(jù)結(jié)構(gòu)》的學習越來越被人們所重視,成為構(gòu)建計算機類專業(yè)群的重要課程。
從課程性質(zhì)講,《數(shù)據(jù)結(jié)構(gòu)》是一門專業(yè)技術(shù)基礎課程。它的教學要求是:學會分析研究計算機加工的數(shù)據(jù)對象的特性,以便選擇合適的數(shù)據(jù)結(jié)構(gòu)和存儲結(jié)構(gòu)以及相應的算法,初步掌握算法的時間分析和空間分析的技術(shù)來評價算法的優(yōu)劣,并對學生進行復雜程序設計的基本訓練。
無論是計算機科學的發(fā)展,還是計算機應用的發(fā)展,都離不開作為基礎的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)組織、數(shù)據(jù)存儲和數(shù)據(jù)存取是計算機一切領域面臨的最根本的研究課題。
操作系統(tǒng)對計算機硬件資源和軟件資源描述、控制和管理都是通過一系列表格來完成的。
編譯程序在編譯過程中的各種信息是通過表格來組織,編譯各階段的過程是通過相應的表和棧來控制的。
數(shù)據(jù)庫系統(tǒng)的根本任務就是如何有效地組織和管理數(shù)據(jù)。
在計算機圖形圖像技術(shù)和多媒體技術(shù)中,最關(guān)鍵最重要的技術(shù)就是數(shù)據(jù)的獲取、標識、組織和管理。
人工智能和專家系統(tǒng)中知識的表示和組織、推理過程的狀態(tài)表述和控制都是以數(shù)據(jù)結(jié)構(gòu)為基礎的。
在計算機類專業(yè)課程中,特別是計算機軟件類課程設置中,《數(shù)據(jù)結(jié)構(gòu)》更反映了它的基礎地位和核心地位?!恫僮飨到y(tǒng)》、《編譯原理》、《數(shù)據(jù)庫原理與應用》、《計算機圖形技術(shù)》等課程,都離不開數(shù)據(jù)結(jié)構(gòu)的知識。
三、數(shù)據(jù)結(jié)構(gòu)的研究范疇
數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計算的程序設計問題中計算機的操作對象及其關(guān)系和操作的學科。它主要研究:
① 數(shù)據(jù)的邏輯結(jié)構(gòu)--數(shù)據(jù)關(guān)系之間的邏輯關(guān)系
② 數(shù)據(jù)的存儲結(jié)構(gòu)--數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示
③ 操作算法--插入、刪除、修改、查詢、排序等
其中,數(shù)據(jù)的邏輯結(jié)構(gòu)包括:線性表、樹、圖,數(shù)據(jù)的存儲結(jié)構(gòu)包括:順序存儲、鏈式存儲。
通過這門課程的學習,學生應能在軟件開發(fā)的過程中正確、合理地選擇數(shù)據(jù)的存儲結(jié)構(gòu),有效地設計算法,從而提高軟件整體質(zhì)量。本課程的學習將為后續(xù)課程的學習以及軟件設計水平的提高打下良好的基礎。
四、數(shù)據(jù)結(jié)構(gòu)的教學目的和基本要求
1、教學目的
數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學、計算機硬件和計算機軟件之間的一門計算機科學與技術(shù)專業(yè)的核心課程,是高級程序設計語言、編譯原理、操作系統(tǒng)、數(shù)據(jù)庫、人工智能等課程的基礎。同時,數(shù)據(jù)結(jié)構(gòu)技術(shù)也廣泛應用于信息科學、系統(tǒng)工程、應用數(shù)學以及各種工程技術(shù)領域。數(shù)據(jù)結(jié)構(gòu)的內(nèi)容包括抽象、實現(xiàn)和評價三個層次,從數(shù)據(jù)表示和數(shù)據(jù)處理上看有五個基本組成“要素”分別是邏輯結(jié)構(gòu),存儲結(jié)構(gòu)、基本運算、算法及不同數(shù)據(jù)結(jié)構(gòu)的比較與算法分析。通過學習,使學生初步具備分析問題、解決問題的能力,養(yǎng)成良好的程序設計風格,積聚和提高基本的分析設計能力,并培養(yǎng)團隊寫作能力。為后續(xù)課程的學習打下堅實的基礎。
2、基本要求:
(1)了解數(shù)據(jù)結(jié)構(gòu)及其分類、數(shù)據(jù)結(jié)構(gòu)與算法的密切關(guān)系;
(2)掌握設計算法的步驟和算法分析方法;
(3)熟悉各種基本數(shù)據(jù)結(jié)構(gòu)及其操作,學會根據(jù)實際問題要求來選擇數(shù)據(jù)結(jié)構(gòu);
(4)掌握常規(guī)設計方法和技巧?!?/p>
參考文獻:
[1]王洪 淺析《數(shù)據(jù)結(jié)構(gòu)》教學問題
[2] 王嵐,張倩茜 《數(shù)據(jù)結(jié)構(gòu)》教學探討