謹(jǐn)以此篇文章獻(xiàn)給我的網(wǎng)友海天一線還有就是為今天的組合數(shù)學(xué)考試祈禱:
海天一線是一個(gè)從asp開發(fā)轉(zhuǎn)向C++的朋友,并不斷奮斗,希望實(shí)現(xiàn)個(gè)人價(jià)值--進(jìn)入一所全國(guó)最牛的研究生院!有志氣!!
任何應(yīng)用程序其實(shí)就是對(duì)于數(shù)據(jù)的操作,完成商業(yè)邏輯。操作的方法無異于添加、修改、更新、刪除、查找、訪問等。而操作的過程中需要對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),抑或?yàn)榱思涌焖俣龋赡軐?duì)數(shù)據(jù)進(jìn)行二次存儲(chǔ)(緩存)。對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)就設(shè)計(jì)到數(shù)據(jù)結(jié)構(gòu)的概念,可以說就是設(shè)計(jì)一個(gè)存儲(chǔ)數(shù)據(jù)的容器,容納數(shù)據(jù)且支持對(duì)數(shù)據(jù)的操作。針對(duì)不同的需求,數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)也不同,比如裝石頭,我們可以用籃子,而裝水就不可以。任何一本數(shù)據(jù)結(jié)構(gòu)的書大概講的差不多,無論是何種語言,只要支持?jǐn)?shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)都可以實(shí)現(xiàn)書本中講到的結(jié)構(gòu):數(shù)組、列表、棧、隊(duì)列、樹、圖、哈西表等。每一種結(jié)構(gòu)都是對(duì)顯示世界中模型的一種抽象,比如數(shù)組可以表示向量、或者集合模型,列表和數(shù)組類似,只不過各有優(yōu)缺點(diǎn),它刪除、插入速度快,而不支持隨即訪問,樹一般是搜索用。開始聽海天一線說不明白數(shù)據(jù)結(jié)構(gòu)怎么用,我覺得很奇怪,細(xì)細(xì)思考才發(fā)現(xiàn)問題。在Web開發(fā)中,數(shù)據(jù)一般都在數(shù)據(jù)庫中,所以對(duì)數(shù)據(jù)的操作都是在數(shù)據(jù)庫里面實(shí)現(xiàn)了,而應(yīng)用開發(fā)中很少需要自己關(guān)心,所以轉(zhuǎn)向桌面應(yīng)用開發(fā)(具體到C++)就不明白數(shù)據(jù)結(jié)構(gòu)了,其實(shí)就相當(dāng)于數(shù)據(jù)庫里面的操作。
當(dāng)然,數(shù)據(jù)結(jié)構(gòu)各種語言基本都實(shí)現(xiàn)了并各自有擴(kuò)展,我們學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)的抽象問題的思想,而不是會(huì)使用數(shù)據(jù)結(jié)構(gòu),或者會(huì)設(shè)計(jì)一個(gè)具體的容器。STL(SGI公司開發(fā))里面有vector、list、deque、set、map等,且據(jù)說這個(gè)可以移植,MFC有CArray、CMap、CList等,在Java里面也有Array、HashTable至少(因?yàn)槲伊私夂苌伲珺oost里面也有全部實(shí)現(xiàn)。所以真正開發(fā)中,我們可以根據(jù)語言和實(shí)際選擇已有的實(shí)現(xiàn),除非已有的容器無法滿足需求,我們可以對(duì)已有容器封裝來設(shè)計(jì)或者完全自己實(shí)現(xiàn)。一般新建一個(gè)基于控制臺(tái)的項(xiàng)目設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),并加入數(shù)據(jù)檢驗(yàn)正確性,當(dāng)正確后在加入到項(xiàng)目中使用。
建議看一下別人設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)源碼,最好是公認(rèn)的或者流行的,有模板知識(shí)的可以看下STL的實(shí)現(xiàn),對(duì)于模板有很強(qiáng)的認(rèn)識(shí)且C++語法掌握很好的建議看看Boost,說句實(shí)話,我自己不行,只看了2個(gè)結(jié)構(gòu),一個(gè)Any,一個(gè)Array,別的沒有繼續(xù)看下去,太難!!
具體到學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)里面的小問題,建議看書,本文只是本人對(duì)數(shù)據(jù)結(jié)構(gòu)的一個(gè)淺薄認(rèn)識(shí),如果學(xué)習(xí)中遇到問題,可以提出來,盡本人最大努力提供幫助。
希望高手提出建設(shè)性意見!!但是拒絕人身攻擊!!!
posted on 2005-12-28 22:30
萬連文 閱讀(454)
評(píng)論(1) 編輯 收藏 引用 所屬分類:
亂七八糟