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

為什么會有“數(shù)據(jù)結(jié)構(gòu)”?

2019-12-20 20:29:56李曉明
計算機教育 2019年1期
關(guān)鍵詞:程序計算機教材

李曉明

(北京大學 計算機系,北京 100871)

近一年來,由于參與一套高中信息科技教材的編寫,回過頭來思考了一些關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)的認識問題,其中就包括本文的標題。

記得40年前上大學的時候,上郭福順老師教的數(shù)據(jù)結(jié)構(gòu)課,對“數(shù)據(jù)結(jié)構(gòu)”這個術(shù)語是感到完全新奇的。因為“數(shù)據(jù)結(jié)構(gòu)”不像“高等數(shù)學”,至少以前還聽說過“數(shù)學”,于是“高等數(shù)學”也就不陌生(盡管其內(nèi)容和原來知道的數(shù)學很不一樣)。由此我聯(lián)想到,在給中學生介紹數(shù)據(jù)結(jié)構(gòu)相關(guān)知識的時候,是不是首先得回答一下“為什么會有‘數(shù)據(jù)結(jié)構(gòu)’”這個問題,說說“數(shù)據(jù)結(jié)構(gòu)”這樣一個概念在計算機科學中的意義。

為此,首先翻書,國內(nèi)的、國外的,在相關(guān)的資料遍歷之后發(fā)現(xiàn),不少作者也都感覺需要在一開始就談談“數(shù)據(jù)結(jié)構(gòu)”的重要性,于是常常會有幾句相關(guān)的話放在緒論甚至前言中。概括起來大致有這樣幾種情況。其一,不回答為什么會有“數(shù)據(jù)結(jié)構(gòu)”,只是講“數(shù)據(jù)結(jié)構(gòu)”作為一門課程在計算機專業(yè)課程中的基礎(chǔ)地位;其二,引用Niklaus Wirth的經(jīng)典觀點:程序=算法+數(shù)據(jù)結(jié)構(gòu),佐證學習“數(shù)據(jù)結(jié)構(gòu)”概念的重要性;其三,一開始只是講“什么是數(shù)據(jù)結(jié)構(gòu)”,而讓對“為什么會有‘數(shù)據(jù)結(jié)構(gòu)’”的認識隱含在其中。例如,維基百科上關(guān)于“data structure”的描述就是后者的一個代表。

In computer science, a data structure is a data organization, management and storage format that enables efficient access and modification. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.

翻譯過來就是:

計算機科學中的數(shù)據(jù)結(jié)構(gòu),是數(shù)據(jù)組織、管理和存儲的形態(tài),以支持對數(shù)據(jù)的高效訪問和修改。更準確地講,一個數(shù)據(jù)結(jié)構(gòu)是由若干數(shù)據(jù)、它們之間的關(guān)系以及能在其上施行的操作構(gòu)成的一個集合。

其中的“以支持對數(shù)據(jù)的高效訪問和修改”應該就是關(guān)于數(shù)據(jù)結(jié)構(gòu)的目的性或意義的隱含。這段話一句句讀來應該找不出錯。我的看法在于它描繪了一種“重心”偏離的意境,容易對回答“為什么會有‘數(shù)據(jù)結(jié)構(gòu)’”這樣的問題產(chǎn)生誤導,所以愿在此和有興趣的同仁商榷。

首先,關(guān)鍵問題是這里提到的“數(shù)據(jù)”指的是什么?是計算機應用層的數(shù)據(jù)還是計算機程序在運行時“看到的”任何0或1串?我認為大多數(shù)人的理解會是前者(在一些教材的描述中明顯是這個意思),尤其對剛開始接觸計算機科學知識的人更是如此(恰恰是他們應該作為這些描述的讀者對象)。于是,這里給出的畫面就是,數(shù)據(jù)結(jié)構(gòu)是將計算機應用數(shù)據(jù)按照某種方式組織起來的結(jié)構(gòu),以便對它們進行高效處理。

需不需要這么做?當然需要,但我以為那不是“數(shù)據(jù)結(jié)構(gòu)”的主要意義。

雖然數(shù)據(jù)結(jié)構(gòu)的采用在許多情況下就是應用數(shù)據(jù)的一種組織,如工程計算中用的數(shù)組,每個元素就對應一個現(xiàn)實中的物理量;社會網(wǎng)絡分析中的圖,每一個節(jié)點就對應一個人的有關(guān)屬性參數(shù)。但在我看來,計算機程序用數(shù)據(jù)結(jié)構(gòu),本質(zhì)上是為了支持算法邏輯,而不是應用層數(shù)據(jù)的組織。常常,一個數(shù)據(jù)結(jié)構(gòu)的采用與應用層數(shù)據(jù)并沒有直接的關(guān)系,而是旨在對計算過程的有效引導。

稍微考慮一下就能想到許多例子。例如,為了實現(xiàn)廣度優(yōu)先搜索,典型做法是用一個隊列(一種數(shù)據(jù)結(jié)構(gòu))控制搜索的過程,而不是把被搜索的數(shù)據(jù)組織成隊列結(jié)構(gòu);再如二叉樹的采用,常常就是因為算法邏輯的需要,樹中非葉節(jié)點包含的,就不是輸入的應用層數(shù)據(jù),而是程序運行中產(chǎn)生的中間數(shù)據(jù)或控制數(shù)據(jù)。也許我們可以說,數(shù)據(jù)結(jié)構(gòu)更多地是為了“控制”,而不是為了“數(shù)據(jù)”。為了“提高效率”沒錯,但要認識到既包括執(zhí)行效率,又包括編程效率。

因此,顯式或隱含強調(diào)數(shù)據(jù)結(jié)構(gòu)是應用問題數(shù)據(jù)的組織形態(tài),在我看來,是學理重心的偏離。如果要強調(diào)數(shù)據(jù),則應該指明是程序“看見的”、編程人員體會得到的數(shù)據(jù)含義會更有教益。那樣的數(shù)據(jù)除了程序的輸入數(shù)據(jù)外,還包含中間結(jié)果數(shù)據(jù)和控制數(shù)據(jù)。

簡言之,在數(shù)據(jù)結(jié)構(gòu)課程(和教材)中,我們應該開宗明義地講數(shù)據(jù)結(jié)構(gòu)是為算法邏輯服務的(而不講是應用數(shù)據(jù)之間關(guān)系的表達),從而讓學生從一開始就試圖體會,并在后續(xù)學習過程中不斷磨礪一種更有價值的觀念,這種磨礪包括認識到是計算機存儲器線性編址的簡單性與程序邏輯的復雜性之間的鴻溝,導致了數(shù)據(jù)結(jié)構(gòu)的必要性,等等。我想,這也是對Niklaus Wirth的“程序=算法+數(shù)據(jù)結(jié)構(gòu)”的一種恰當解釋。

猜你喜歡
程序計算機教材
教材精讀
教材精讀
計算機操作系統(tǒng)
教材精讀
教材精讀
基于計算機自然語言處理的機器翻譯技術(shù)應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
試論我國未決羈押程序的立法完善
信息系統(tǒng)審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
主站蜘蛛池模板: 国产9191精品免费观看| 午夜精品影院| 九九视频免费在线观看| 国产午夜精品一区二区三区软件| 91视频精品| 18禁高潮出水呻吟娇喘蜜芽| 亚洲无码视频一区二区三区| 精品久久久久久中文字幕女| 亚洲三级电影在线播放| 久久99久久无码毛片一区二区| 欧美日韩理论| 激情六月丁香婷婷| 九九久久99精品| 91成人在线观看视频| 色婷婷成人| 午夜毛片免费观看视频 | 亚洲日韩久久综合中文字幕| 青青热久麻豆精品视频在线观看| 日日碰狠狠添天天爽| 日韩精品无码免费一区二区三区 | 国产产在线精品亚洲aavv| 国产成人亚洲无吗淙合青草| av一区二区无码在线| 无码丝袜人妻| 最新日本中文字幕| 九色91在线视频| 成人小视频在线观看免费| 中字无码精油按摩中出视频| 人妻精品久久久无码区色视| 国产白浆在线观看| 一级成人a做片免费| 成人午夜亚洲影视在线观看| 97久久精品人人做人人爽| 国产男女免费视频| 国产精品成人不卡在线观看| 欧美日韩综合网| 在线观看国产精品第一区免费| 极品国产一区二区三区| 色哟哟精品无码网站在线播放视频| AⅤ色综合久久天堂AV色综合 | 国内精品视频区在线2021| 狠狠操夜夜爽| 亚洲视频免费在线看| 久久窝窝国产精品午夜看片| 国产青青草视频| 欧美在线精品怡红院| 亚洲第一成人在线| 久草性视频| 中文字幕1区2区| 玖玖精品在线| 2022国产无码在线| 九九热这里只有国产精品| 久久www视频| 一本一本大道香蕉久在线播放| 四虎成人精品| 四虎精品免费久久| 欧美国产菊爆免费观看| 国产精品无码久久久久AV| 国产高清在线丝袜精品一区| 四虎成人在线视频| 鲁鲁鲁爽爽爽在线视频观看| 婷婷色一二三区波多野衣| 国产又粗又爽视频| 久久婷婷六月| 国产第一页屁屁影院| 免费又爽又刺激高潮网址| 久久女人网| 欧美午夜精品| 高h视频在线| 国产三区二区| 亚洲a级在线观看| 国内精品久久九九国产精品| 97超爽成人免费视频在线播放 | 蜜桃视频一区| 久久青草视频| 国产www网站| 国产理论最新国产精品视频| 中国国产一级毛片| 欧美五月婷婷| 国产一级无码不卡视频| 欧美日韩专区| 亚洲视频四区|