董思妤
摘 要: 《數(shù)據(jù)結構》是一門比較抽象、理論性強、難度較大又極其重要的課程,通過高效、優(yōu)質的課堂提問,對于學員邏輯思維能力和創(chuàng)造力的培養(yǎng)有非常重要的作用。本文從教學實踐出發(fā),通過具體教學實例,探討如何提高學員的思維能力。
關鍵詞: 《數(shù)據(jù)結構》 思維能力 優(yōu)質提問教學法 教學實踐 教學方法
引言
《數(shù)據(jù)結構》是武警初級指揮生長干部四年制“學歷教育合訓”本科學員指揮信息系統(tǒng)工程專業(yè)的專業(yè)基礎必修課。對學員信息素質的培養(yǎng)、信息系統(tǒng)的開發(fā)等技能具有一定的指導作用,訓練學員分析和解決問題的能力,使學員了解數(shù)據(jù)結構在解決現(xiàn)實問題中的重要應用,培養(yǎng)學員探索精神,提高學員綜合素質,實現(xiàn)知識、能力與素質協(xié)調發(fā)展,為培養(yǎng)具有較強創(chuàng)新能力的高素質新型軍事人才奠定基礎。
1.優(yōu)質提問教學法
課堂提問是教學中的一個重要環(huán)節(jié),通過提問,可以提高學員注意力,激發(fā)學員積極思考,使課堂氣氛變得活躍,進而提高學員的學習興趣;通過提問,可促使學員對已學知識進行回顧,對未學的知識進行探索,并將各知識點串聯(lián)起來,形成更完整、更具體的知識體系[1]。為了提高學員的思維能力,培養(yǎng)學員解決問題的能力,教員在授課時就要有意識地引導學員思考,通過教員的引導使學員形成自己的思維過程。因此,教員應掌握一定的課堂提問技巧,因為不合理的提問反而會影響教學效果。
優(yōu)質提問教學法指教員一定要科學設問。提出的問題需要掌握一定的技巧,問題要設置在關鍵之處,如在回顧舊知識引入新課及重要知識點之間的銜接時,都可以設問。課堂設問的難易程度要適中,以能激發(fā)學員的學習興趣為前提。教員在設置問題時,應循序漸進,通過問題的層層深入,讓學員掌握理解問題本質的思維方法,使學員分析問題的能力得以提高。
2.教學范例:線性表的單鏈式存儲結構
“線性表的單鏈式存儲結構”教學內容安排在“線性表的順序存儲結構(包含特殊線性表棧和隊列)”之后[2],首先回顧線性表的順序存儲結構,用類比法引入新課。將在座每一位同學類比為數(shù)據(jù)元素,將教室每一個座位類比為計算機的存儲單元,前面學習的順序存儲方式就好比每一位同學按學號依次就座,座位是固定的,而今天要學習的鏈式存儲結構,可不按順序就座,只要有空位就可以坐,讓每一位同學記住學號在你后面的下一位同學的位置即可。單鏈表只能單方向查找,就好比我們經(jīng)??吹恼檻?zhàn)片,你只知道你的下線,卻永遠不知道你的上線是誰。從生活中的事例引入,很快就讓學員明白了,而不會覺得很抽象?;氐綌?shù)據(jù)結構中,鏈式存儲將每一個數(shù)據(jù)元素看做一個結點,每一個結點的存儲單元不需要是連續(xù)的,每一個結點中存放它后繼結點的地址。第一個結點的地址通過頭結點獲取,之后每一個結點都可以通過它的前驅結點找到。
這時,提出第一個問題:(1)在一個已知結點之前插入刪除數(shù)據(jù)容易呢?還是在已知結點之后插入刪除數(shù)據(jù)容易?這時學員就會思考如果已知結點p,那么p的后繼結點地址可輕松地通過p->next獲取,如果在p結點后插入結點s的話很容易,只需要s->next=p->next;p->next=s;重新鏈接一下指針就可以了,時間復雜度為O(1)。而p的前驅結點能不能直接獲取到呢?由前面所學的知識學員很快就明白了,不行,只能通過頭指針L依次從頭結點開始獲取,q=L->next;while(q->next!=p)q=q->next;此時q指向的結點就是p的前驅結點,查找結點的時間復雜度為O(n),再通過q->next=s;s->next=p,就可以成功地在p結點前插入結點s了。而刪除操作亦然。引導學員分析完后,學員在認真思考下,很快就能給出答案:當然是在已知結點之后插入刪除數(shù)據(jù)容易了。
掌握了這部分知識點之后,接著拋出第二個問題:(2)對于棧這種操作受限的線性表,它只能在一端進行插入和刪除,它的鏈式存儲結構—鏈棧,結點的插入和刪除操作應該放在鏈首還是鏈尾?教員再引導學員通過前面所學的知識思考:如果在鏈首操作,就應該是在頭結點之后插入和刪除,而頭結點的地址容易獲取嗎?顯而易見,通過頭指針可以直接獲取到,時間復雜度為O(1),這就轉化為第一個問題中的已知結點(頭結點L->next)之后插入和刪除的問題。而若在鏈尾操作,插入結點需要獲取最后一個結點的地址,刪除最后一個結點需要獲取倒數(shù)第二個結點的地址,這些都需要從頭指針處開始查找,時間復雜度為O(n)。這時學員很快就能給出答案:對于鏈棧,結點的插入和刪除操作應該放在鏈首。并且引導學員依照第一個問題寫出程序代碼。
對于鏈棧的操作大家明白了,請思考最后一個問題:(3)對于隊列這種操作受限的線性表,它只能在一端進行插入另一端進行刪除,它的鏈式存儲結構—鏈隊列,結點的插入和刪除操作應該放在鏈首還是鏈尾呢?首先要讓學員明白鏈隊列的頭指針與鏈棧的不同,是一結構體,其中Q.front始終指向頭結點,Q.rear始終指向尾結點,如圖1。
若在鏈首刪除鏈尾插入,則引導學員分析,學員通過前面所學知識,很容易就能寫出實現(xiàn)代碼。
鏈首刪除(出隊):p=Q.front->next;Q.front->next=p->next;free(p);考慮當只剩下一個結點刪除后隊列為空的情況:if(Q.rear==p);Q.rear=Q.front;free(p);時間復雜度為O(1);
鏈尾插入(入隊):Q.rear->next=S;Q.rear=S;時間復雜度為O(1)。
反過來,若在鏈首插入鏈尾刪除,則讓學員自己分析。
鏈首插入(入隊):與鏈棧操作相同。S->next=Q.front->next;Q.front->next=S;時間復雜度為O(1)。
鏈尾刪除(出隊):即是要刪除Q.rear指向的結點,刪除后Q.rear指向前驅結點。讓學員思考該怎么做,Q.rear的前驅結點地址如何獲?。窟@時學員馬上就會想到只能從Q.front處開始查找獲取,時間復雜度為O(n)。隨后讓學員自己寫出實現(xiàn)代碼。
最后,學員給出答案:鏈隊列出隊在鏈首,入隊在鏈尾比較好。
以上這三個問題是將不同章節(jié)的知識點串聯(lián)起來,對授課內容進行重組,所提出的問題環(huán)環(huán)相扣,由易到難、循序漸進。不僅讓學員有效掌握了對鏈式存儲結構操作的相關知識,而且啟發(fā)了學員的思維,調動了學員學習的積極性,鍛煉了學員的邏輯思維和獨立思考問題的能力。
3.結語
本文通過具體教學案例,探討了以教員充分引導和啟發(fā)學員思維相結合為主要特征的優(yōu)質提問教學法。通過構建“問題鏈”,創(chuàng)設問題情境,恰當?shù)爻尸F(xiàn)問題,激發(fā)學員的興趣,激發(fā)學員參與解決問題的欲望,調動他們主動探索問題的積極性,對學員思維能力的培養(yǎng)起到重要作用,對教員課堂教學質量的提高也起到積極作用。
參考文獻:
[1]嚴太山,郭觀七,李文彬.課堂設問的技巧及其在《數(shù)據(jù)結構》課程教學中的應用[J].湖南理工學院學報(自然科學版),2015(3):81-83.
[2]嚴蔚敏,吳偉民.數(shù)據(jù)結構(C語言版)[M].清華大學出版社,2007.