摘要:本文分析了該課程的邏輯結構與物理結構映射這一教學難點展開研究,首先介紹了這兩種結構的基本概論,接著闡述了該知識點在整個課程教學環節中的地位,然后整理了該課程在教學中存在的問題,最后給出了相對應的建議。
關鍵詞:數據結構;邏輯結構;物理結果;映射
數據結構有邏輯上的數據結構和物理上的數據結構之分。邏輯上的數據結構反映成分數據(數據元素)之間的邏輯關系,而物理上的數據結構反映成分數據在計算機內部的存儲安排。這兩種結果相互映射,邏輯結構用于數據結構的理論分析,物理結構是該結構的具體實現。兩種結構的映射就是已邏輯結構為基礎將數據在物理結構上實現。
1、數據邏輯結構與物理結構
數據的邏輯結構反映了數據的組成元素之間的關系,數據的物理結構反映了數據的邏輯結構在物理上的實現。數據的邏輯結構分兩大類:
線性結構和非線性結構,非線性的機構又可分為集合、樹和圖。線性結構是n個數據元素的有序(次序)集合。它有四個基本特征:
(1)集合中必存在唯一的一個“第一個元素”;(2)集合中必存在唯一的一個“最后的元素”;(3)除最后元素之外,其它數據元素均有唯一的“后繼”;(4)除第一元素之外,其它數據元素均有唯一的“前驅”。
數據結構中線性結構指的是數據元素之間存在著“一對一”的線性關系的數據結構,而非線性結構的數據元素之間存在著“—對多或多對多”的關系。
數據的存儲結構有四種:順序存儲、鏈接存儲、索引存儲和散列存儲。存儲結構是算法實現的基礎,每種數據結構都可能用不同的存儲結構來存儲,而不同邏輯結構的數據也可采用相同的存儲形式,而體現的關系不同。比如單鏈表是一種常見的邏輯結構,在物理上我們既可以用順序結構來是實現也可以用鏈式結構來實現。
2、數據邏輯結構與物理結構映射在教學中的地位
一個數據結構是由數據元素依據某種邏輯聯系組織起來的。對數據元素間邏輯關系的描述稱為數據的邏輯結構;數據必須在計算機內存儲,數據的存儲結構是數據結構的實現形式,是其在計算機內的表示;此外討論一個數據結構必須同時討論在該類數據上執行的運算才有意義。一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率。在數據結構的教學過程中,首先要讓同學們理解數據的邏輯結構,理清數據元素之間的關系,接著將這種邏輯結構在計算機上存儲起來,緊接著在已存儲的物理結構上完成特定操作,最后比較相同邏輯結構采取不同的物理結構完成相同操作在效率上的差異。通過以上一套完整的學習使學生對數據結構有一個全面完整的理解。在這個學習的過程中,對邏輯結構向物理結構對應關系的理解是學好數據結構這門課程的關鍵,如果不能很好的理解這樣一個結構,算法的實現將無從談起。
3、數據邏輯結構與物理結構映射在教學中的問題
在教學中沒有很好地幫助學生跨過數據邏輯結構與物理結構映射這道坎。通過總結近年數據結構的教學經歷,我發現在該知識點的教學上存在以下問題:
(1)本知識點過于抽象,內容在空間上的跨度過大,邏輯結構反映的是數據元素之間的關系,但數據元素是不可見的,而與其對應的物理結構是指的邏輯結構在物理存儲空間上真是布置,這個也是不可見的,從邏輯上的虛擬組成到物理上的實際存儲對應起來跨度較大。
(2)在教學中過早引入算法分析,學生在沒有真正將兩種結構之間的映射關系搞清的前提下就急于涉及算法實現。這樣至少有兩個缺點,一是基本理論沒有完全搞清就進行應用,學生不能很好理解,二是數據結構開設的課程之前學生剛學過計算機語言,對于低年級的學生來說計算機語言本身就不是很好理解,這樣兩難相合進一步增加了學生對本知識點的理解。
(3)學生的知識儲備不夠,在教學實踐中,每個學院在課程開設的安排不盡相同,有些班級在數據結構開設之前先修課程開設不夠,學生對很多知識點要么理解的不透徹要么就是根本就沒有學過。
4、數據邏輯結構與物理結構映射在教學中的建議
(1)在這個知識點的教學上,我們要盡可能的多的引入現實中的實例,使虛擬的結構變得可見生動起來。例如,我們可以將邏輯結構和物理結構比喻成建筑的圖紙和實踐的建筑,以此使學生理解兩種結構之間的對應關系。我們還可以舉班級的學號序列與同學們在教室中實際就坐的空間關系來說明相同的邏輯結構在不同物理結構下的空間形態分布。除此以外我們也可以借用多媒體教學的手段使同學們能更形象地理解該知識點。
(2)應盡可能地使學生先對數據邏輯結構與物理結構映射有了完全的理解后再開始算法知識的講解,因為數據結構課程每章的教學內容在結構上大致都是一致的,只要在前期教學中攻克了映射這個難點,后面章節的教學就變得簡單起來,這樣能起到事半功倍的效果。
(3)做足數據結構課程的知識儲備,在課程設置上在數據結構開設以前應開設數據結構算法描述相對應的程序語言,除此以外,應開設于計算機硬件相關的課程,因為物理結構是基于計算機硬件的。