999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

注重“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中的承前啟后

2008-12-31 00:00:00周克蘭張玉華
計(jì)算機(jī)教育 2008年21期

摘要:本文說明了數(shù)據(jù)結(jié)構(gòu)教學(xué)中如何注重承前啟后,文中以單鏈表插入算法教學(xué)為實(shí)例具體說明了在教學(xué)中同一章的內(nèi)容之間如何注重承前啟后,同時(shí)說明了在講授單鏈表、有序表的歸并、查找等內(nèi)容時(shí),如何注重各章內(nèi)容之間的承前啟后。

關(guān)鍵詞:單鏈表;插入;承前啟后

中圖分類號:G642

文獻(xiàn)標(biāo)識碼:B

1引言

“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門核心專業(yè)基礎(chǔ)課,是我校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)位課程以及報(bào)考該專業(yè)研究生必考課程,因此學(xué)生對“數(shù)據(jù)結(jié)構(gòu)”這門課普遍比較重視。但由于“數(shù)據(jù)結(jié)構(gòu)”課程的特點(diǎn)是概念多、綜合性強(qiáng)、技巧性強(qiáng),往往學(xué)生感到花了不少時(shí)間和精力,學(xué)習(xí)效果不象有些課程那么明顯,特別是感到理解書上的內(nèi)容并不難,課上也都聽得懂,可是一做算法設(shè)計(jì)題就無從下手,寫出的算法結(jié)構(gòu)不清晰、效率低下,根據(jù)課程內(nèi)容編寫上機(jī)題更是困難重重。部分同學(xué)進(jìn)而感到“數(shù)據(jù)結(jié)構(gòu)”難學(xué),甚至少數(shù)同學(xué)對學(xué)好該課程喪失信心。究其原因,主要是學(xué)生對所學(xué)知識的掌握是片面的、支離破碎的,沒有能將所學(xué)知識融會貫通,靈活應(yīng)用。

筆者在多年的“數(shù)據(jù)結(jié)構(gòu)”教學(xué)中不斷探索、吸取和總結(jié)教學(xué)理論和教學(xué)經(jīng)驗(yàn),在教學(xué)過程中注意承前啟后,善于總結(jié),把課程中各章之間的內(nèi)容、每章各小節(jié)之間的內(nèi)容串起來,從而利于學(xué)生的理解和掌握,取得了良好的教學(xué)效果。

2教學(xué)中注重同一章的內(nèi)容之間承前啟后

在進(jìn)行每一章教學(xué)時(shí),注重內(nèi)容的前后聯(lián)系,承前啟后。在學(xué)習(xí)一個(gè)新的知識點(diǎn)時(shí),盡量由學(xué)生已經(jīng)熟悉的內(nèi)容引入,過渡到新的知識點(diǎn)。就像一個(gè)人挑擔(dān)子一樣,一下子挑很重的擔(dān)子是不行的,每天增加一點(diǎn),天長日久,可挑的擔(dān)子就會越來越重而不會感到吃力。同樣在教學(xué)中也應(yīng)該是讓學(xué)生總是在已學(xué)知識的基礎(chǔ)上認(rèn)識學(xué)習(xí)新知識,這樣學(xué)生學(xué)習(xí)就不會感到吃力,同時(shí)通過已學(xué)知識引入新知識,更加深了學(xué)生對前面知識的理解,使原來可能模糊的概念變得清晰。在學(xué)完每個(gè)新的知識點(diǎn)后,盡量介紹一下它和后面的聯(lián)系,以后那些地方我們會用到它,這樣,學(xué)生覺得這些內(nèi)容以后需要用,就學(xué)得格外認(rèn)真,同時(shí)也對將來要學(xué)的內(nèi)容作了預(yù)習(xí)。

下面以單鏈表中插入算法的教學(xué)為例,談?wù)劰P者的具體做法。

2.1單鏈表的存儲結(jié)構(gòu)

typedefstructLnode {

ElemTypedata;

Struct Lnode*next;

}Lnode,*Linklist;

2.2在單鏈表中插入一個(gè)結(jié)點(diǎn)

在單鏈表中某結(jié)點(diǎn)p后面插入結(jié)點(diǎn)s,如圖1所示。

插入算法為:

new(s); s->data=x;

s->next=p->next; p->next=s;

一般教材往往只介紹向單鏈表中插入一個(gè)結(jié)點(diǎn)的算法,學(xué)生一般都能把插入算法搞得很清楚,但是他們不能把所學(xué)的內(nèi)容前后聯(lián)系起來,做習(xí)題時(shí)不善于用已學(xué)的知識來解決問題。產(chǎn)生這種問題的原因是學(xué)生沒吃透書中的內(nèi)容。在教學(xué)時(shí)為了拓寬學(xué)生的思路,筆者接下來介紹在單鏈表的頭結(jié)點(diǎn)后面插入一個(gè)結(jié)點(diǎn)s,如果從一個(gè)空鏈表開始反復(fù)地在頭結(jié)點(diǎn)后向單鏈表中插入結(jié)點(diǎn),就用前插法建立了一個(gè)鏈表;筆者還介紹了在單鏈表的尾上插入一個(gè)結(jié)點(diǎn)s,如果從只有一個(gè)頭結(jié)點(diǎn)的空鏈表開始,反復(fù)地向單鏈表的表尾插入結(jié)點(diǎn),也就用尾插法建立了一個(gè)鏈表;在后面講解建立單鏈表的兩種方法前插法和尾插法時(shí)就很自然地由已學(xué)的知識過渡到新的知識點(diǎn)。

2.3建立單鏈表

建立單鏈表有前插法和尾插法兩種方法。

對于前插法,先建立一個(gè)帶頭結(jié)點(diǎn)的空鏈表,然后依次反復(fù)生成新結(jié)點(diǎn)并插入到頭結(jié)點(diǎn)后,如圖2所示。

前插法的算法為:

Void Create_List_Front(Linklist head,int n){

//前插法建立單鏈表

new ( head);p=head;

head->next=NULL;

For (i=n; i>0;--i){

new(s);

s->data=x;// 生成新結(jié)點(diǎn)

s->next=p->next; p->next=s; // 插入到表頭

}

}// Create_List_Front

對于尾插法,首先生成一個(gè)頭結(jié)點(diǎn),然后依次反復(fù)生成新結(jié)點(diǎn)并插入到表尾,最后把表尾的指針域置空,如圖3所示。

后插法的算法為:

void Create_List_Back(Linklist head,int n){

//尾插法建立單鏈表

new ( head); p=head;

For (i=0; i

new(s);

s->data=x;// 生成新結(jié)點(diǎn)

p->next=s;// 插入到表尾

p=s;// 修改尾指針

}

p->next=NULL;

}// Create_List_Back

由單鏈表的建立引申出單鏈表的逆置,單鏈表的逆置方法就是利用單鏈表的建立的前插法,只不過表中的結(jié)點(diǎn)已經(jīng)存在無需再生成,引導(dǎo)學(xué)生由已知的知識過渡到新的知識,把所學(xué)知識學(xué)通、學(xué)活,題目就會做。

2.4單鏈表的逆置

void inverse(linklist head) //單鏈表的逆置算法

{ p=head->next;//指針p指向單鏈表的第一個(gè)結(jié)點(diǎn),

head->next=1;//先置表為帶頭結(jié)點(diǎn)head的空表

while p do

{ s=p; // 指針s指向待插入的結(jié)點(diǎn)

p=p->next;//指針p后移

s->next=head->next;

head->next=s;//把s所指的結(jié)點(diǎn)插入到head后

}

}

以上幾點(diǎn)掌握后,引導(dǎo)學(xué)生在做習(xí)題時(shí)盡量利用已學(xué)的內(nèi)容來解決問題,一些單鏈表的經(jīng)典習(xí)題就很容易解了。例如,在學(xué)了單鏈表的逆置算法和兩個(gè)單鏈表的歸并算法后,可以解決這樣一個(gè)習(xí)題:把兩個(gè)遞增有序表歸并為一個(gè)遞減有序表,要求利用原表結(jié)點(diǎn)的空間構(gòu)造新表。這個(gè)習(xí)題的難度系數(shù)為4,同學(xué)初看這個(gè)題目感到無從下手,仔細(xì)分析一下就會發(fā)現(xiàn)只需將前面所學(xué)內(nèi)容綜合起來就可以了。

通過講解單鏈表的插入算法,引申出單鏈表的建立、逆置、兩個(gè)單鏈表的歸并等問題,從而使學(xué)生對在單鏈表中插入結(jié)點(diǎn)這個(gè)知識點(diǎn)能夠融會貫通,從而解決與插入結(jié)點(diǎn)算法有關(guān)的一類問題。

在講解了單鏈表中結(jié)點(diǎn)的插入和刪除后,進(jìn)一步啟發(fā)學(xué)生,如果插入和刪除都在鏈表頭結(jié)點(diǎn)處,也就是下一章要學(xué)習(xí)的鏈?zhǔn)綏5娜霔:统鰲A恕H绻迦虢Y(jié)點(diǎn)總是在鏈表的尾結(jié)點(diǎn)處,刪除結(jié)點(diǎn)總在鏈表頭結(jié)點(diǎn)處,也就是下一章要學(xué)習(xí)的鏈?zhǔn)疥?duì)列的入隊(duì)和出隊(duì)。把在單鏈表中插入和刪除結(jié)點(diǎn)的知識和鏈?zhǔn)綏<版準(zhǔn)疥?duì)列相聯(lián)系,對后一章棧和隊(duì)列的內(nèi)容進(jìn)行了預(yù)習(xí)。在后面講到棧和隊(duì)列時(shí)學(xué)生很自然會將前面學(xué)習(xí)的知識應(yīng)用到新知識中。

3教學(xué)中注重各章內(nèi)容之間的承前啟后

“數(shù)據(jù)結(jié)構(gòu)”的內(nèi)容,粗看看就是介紹幾種典型的數(shù)據(jù)結(jié)構(gòu),學(xué)生往往很難把各章之間的內(nèi)在聯(lián)系吃透。在教學(xué)中如果注重內(nèi)容的前后聯(lián)系,把各章前后內(nèi)容盡量聯(lián)系起來,學(xué)生對“數(shù)據(jù)結(jié)構(gòu)”內(nèi)容的理解就會全面、深刻。

例如,以單鏈表為主線將各個(gè)知識點(diǎn)串起來,單鏈表應(yīng)該是全書的重點(diǎn),在許多地方都用到。從不帶頭結(jié)點(diǎn)的單鏈表、帶頭結(jié)點(diǎn)的單鏈表,到單向循環(huán)鏈表、雙向循環(huán)鏈表,以及棧和隊(duì)列的鏈?zhǔn)酱鎯Y(jié)構(gòu),其中的變化都是漸漸的。而數(shù)組的十字鏈表、樹的孩子鏈表、圖的鄰接表、有向圖的十字鏈表、無向圖的鄰接多重表、哈希表處理沖突的鏈地址法都是多個(gè)單鏈表的應(yīng)用。在講解前面單鏈表的內(nèi)容時(shí)注意簡要介紹后面的內(nèi)容,使學(xué)生感到這部分內(nèi)容是很重要的,后面都要用的,學(xué)生就會很重視,同時(shí)讓學(xué)生在學(xué)習(xí)前面內(nèi)容時(shí)先初步了解后面的內(nèi)容,在后面學(xué)到有關(guān)知識時(shí)發(fā)現(xiàn)只是在已學(xué)的知識基礎(chǔ)上再加一點(diǎn),學(xué)生就不會感到很難。而在學(xué)習(xí)數(shù)組的十字鏈表、樹的孩子鏈表、圖的鄰接表表示法、有向圖的十字鏈表、無向圖的鄰接多重表、哈希表處理沖突的鏈地址法時(shí),不時(shí)地用前面熟悉的結(jié)構(gòu)來類比,指出其異同點(diǎn),從而把看起來聯(lián)系不緊密的內(nèi)容串起來,形成一個(gè)完整的概念,這樣學(xué)生對基本內(nèi)容的內(nèi)在聯(lián)系就能深刻理解。

又如,兩個(gè)有序表的歸并,從兩個(gè)有序線性表的歸并的算法思想開始,教材中許多問題都可以用兩個(gè)有序表的歸并的算法思想來解決。比如,兩個(gè)順序有序表的歸并、兩個(gè)有序單鏈表的歸并,集合的交和并運(yùn)算、多項(xiàng)式的加與減、壓縮矩陣的三元組表示的矩陣加和減運(yùn)算、歸并排序等。在講解這一系列問題時(shí)注重前后聯(lián)系、預(yù)習(xí)和總結(jié),取得良好的教學(xué)效果。

再如,講解查找這一章內(nèi)容的過程,事實(shí)上是對前面幾章的總復(fù)習(xí),例如從順序查找復(fù)習(xí)線性表,包括兩種存儲結(jié)構(gòu)、線性表的基本操作、時(shí)間復(fù)雜度等內(nèi)容;從折半查找復(fù)習(xí)遞歸算法、二叉樹;從哈希查找的學(xué)習(xí)加深多個(gè)單鏈表的應(yīng)用。查找既是一種操作又是一種數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)的組織采用不同的數(shù)據(jù)結(jié)構(gòu),可以用不同的查找方法進(jìn)行查找。通過這樣方式的講解,學(xué)生就明白查找這個(gè)數(shù)據(jù)結(jié)構(gòu)為什么是最后講的一個(gè)數(shù)據(jù)結(jié)構(gòu),一方面它綜合了前幾章的內(nèi)容,另一方面,它又是對前幾章的總結(jié)與提高,至此學(xué)生對全書的內(nèi)容有了比較全面、深刻的理解,一些原來有些模糊的概念變得清晰。

4結(jié)束語

筆者通過在“數(shù)據(jù)結(jié)構(gòu)”課程的教學(xué)過程中注意承前啟后,不斷總結(jié),把課程中各章內(nèi)容、每章節(jié)之間的內(nèi)容串起來,教會學(xué)生的不僅是課程的具體內(nèi)容,更是讓學(xué)生學(xué)會一種學(xué)習(xí)和思考的方法,善于利用自己已經(jīng)掌握的知識來解決新問題,學(xué)生學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”不再覺得難。同樣在學(xué)習(xí)其他課程時(shí)也可以借鑒此方法。

參考文獻(xiàn):

[1] 嚴(yán)蔚敏, 吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學(xué)出版社,2001.

[2] 嚴(yán)蔚敏, 吳偉民. 數(shù)據(jù)結(jié)構(gòu)題集[M]. 北京:清華大學(xué)出版社,2001.

[3] 唐策善, 李龍澍, 黃劉生. 數(shù)據(jù)結(jié)構(gòu)—用C語言描述[M]. 北京:高等教育出版社,1995.

[4] 揭安全, 李云清, 楊慶紅等. “數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革與創(chuàng)新[J]. 計(jì)算機(jī)教育,2008,(10):132-133.

主站蜘蛛池模板: 日韩色图在线观看| 欧美日韩专区| 伊人久久综在合线亚洲2019| 久久久久免费精品国产| 久久精品视频一| 国产亚洲一区二区三区在线| 亚洲AⅤ综合在线欧美一区| 亚洲综合亚洲国产尤物| 久久毛片网| 日本a级免费| 亚洲成人网在线播放| 天天色天天操综合网| 久久亚洲美女精品国产精品| 欧美另类第一页| 欧美激情成人网| igao国产精品| 国产精品99r8在线观看| 91美女视频在线观看| 呦女亚洲一区精品| 欧美成一级| 国产日韩久久久久无码精品| 国产香蕉在线| 狠狠色噜噜狠狠狠狠色综合久| 欧美精品另类| 日韩高清欧美| 激情無極限的亚洲一区免费| 国产99在线观看| 国产免费看久久久| 久久a级片| 亚洲免费成人网| 国产一级毛片网站| 国产呦视频免费视频在线观看| av午夜福利一片免费看| 亚洲精品欧美重口| 99re精彩视频| 97精品久久久大香线焦| 97免费在线观看视频| 日韩精品一区二区三区中文无码| 99热这里只有精品免费| 久久毛片网| 91欧洲国产日韩在线人成| 2022国产无码在线| 91欧美亚洲国产五月天| 久久久久久久久久国产精品| 亚洲欧美一区二区三区麻豆| 五月天婷婷网亚洲综合在线| 91美女视频在线| 欧美精品黑人粗大| 国产白浆视频| 亚洲天堂久久久| 亚洲AⅤ波多系列中文字幕| 1级黄色毛片| 狠狠综合久久久久综| 欧美人与性动交a欧美精品| 国产成人综合网在线观看| 日韩欧美高清视频| 毛片在线播放a| 亚洲无码在线午夜电影| 国产一级二级在线观看| 98超碰在线观看| 国产 日韩 欧美 第二页| 亚洲综合色婷婷中文字幕| 成人蜜桃网| 波多野结衣一区二区三区AV| 蜜桃视频一区| 一本一道波多野结衣av黑人在线| 国产在线91在线电影| 中文字幕欧美成人免费| 色综合手机在线| 亚洲精品无码在线播放网站| 日韩 欧美 小说 综合网 另类| julia中文字幕久久亚洲| 国产福利小视频高清在线观看| 又爽又大又黄a级毛片在线视频 | 国产a在视频线精品视频下载| 一级全黄毛片| 1769国产精品视频免费观看| 日韩免费毛片| 国产亚洲视频在线观看| 国产一级毛片在线| 久久午夜影院| 小说区 亚洲 自拍 另类|