<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
    數(shù)據(jù)加載中……

    數(shù)據(jù)結(jié)構(gòu)中避免數(shù)據(jù)項的重復(fù)

    抽象數(shù)據(jù)類型(ADT)是一種只能通過接口訪問的數(shù)據(jù)類型,它是字段與基于字段的操作所構(gòu)成的集合。這里的接口不是interface,而是訪問數(shù)據(jù)的途徑,接口把數(shù)據(jù)的表示和操作方法的實現(xiàn)完全分離開來。兩種最基本的ADT是堆棧和隊列,并且根據(jù)我們的需要,可以構(gòu)建更為復(fù)雜的ADT,例如可以對數(shù)據(jù)項進行計數(shù),檢查數(shù)據(jù)項是否存在重復(fù)等等。

    在很多實際應(yīng)用中,我們都不允許存在數(shù)據(jù)項重復(fù)的情況,需要對用戶提交的重復(fù)數(shù)據(jù)進行合適的處理。讓用戶保證不提交重復(fù)的數(shù)據(jù)可以避免這種情況的發(fā)生,但顯然這種方法并不實際,既然使用ADT就是為了給使用它的程序員提供簡單明了的數(shù)據(jù)類型解決方案,那么我們就應(yīng)該在ADT中來解決這個問題。以隊列為例,一般可以通過兩種策略來處理這個問題:

    1.        放棄新輸入的數(shù)據(jù)項:當(dāng)最新放入隊列中的數(shù)據(jù)項已經(jīng)在隊列中時,放棄當(dāng)前輸入的數(shù)據(jù)項。

    2.        放棄舊的數(shù)據(jù)項,保存新輸入的數(shù)據(jù)項:當(dāng)最新放入隊列中的數(shù)據(jù)項已經(jīng)在隊列中時,放棄已經(jīng)存在于隊列中的數(shù)據(jù)項,保存當(dāng)前放入的數(shù)據(jù)項。

        對于第一種處理方式,在一種特殊的情況下,數(shù)據(jù)項存儲的數(shù)據(jù)是0~N-1之間的整數(shù),那么可以通過增加一個新的數(shù)組a[i]或鏈表來儲存boolean類型數(shù)據(jù),當(dāng)隊列中第i個位置上已經(jīng)存在數(shù)據(jù)i(i<=N-1),設(shè)置a[i]=boolean,那么可以通過a[i]來判斷數(shù)據(jù)i是否已經(jīng)存在于隊列中。第二種處理方式比第一種更為復(fù)雜一些,如果有必要,還可以讓用戶去選擇采取哪種策略來避免重復(fù)的數(shù)據(jù)項。但不管怎么樣,我們可以通過構(gòu)建不同類型的ADT,并在ADT中實現(xiàn)某些我們所需要的功能,將能極大限度地保證數(shù)據(jù)結(jié)構(gòu)和算法的靈活性與清晰的結(jié)構(gòu),使基于ADT的實現(xiàn)能滿足各種不同的具體應(yīng)用,并方便類的重構(gòu)。

    posted on 2006-01-30 00:34 Flyingis 閱讀(1143) 評論(2)  編輯  收藏 所屬分類: Algorithm

    評論

    # re: 數(shù)據(jù)結(jié)構(gòu)中避免數(shù)據(jù)項的重復(fù)  回復(fù)  更多評論   

    不許重復(fù)的數(shù)據(jù)項,聽上去想是集合的概念.java collection framework 里的Set,你看是不是解決你說的問題呀. 當(dāng)然set有不同數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的子類
    2006-02-01 18:35 | 集合

    # re: 數(shù)據(jù)結(jié)構(gòu)中避免數(shù)據(jù)項的重復(fù)  回復(fù)  更多評論   

    Set的確實現(xiàn)了類似的功能,但不能滿足任何情況下功能上的需要;有時對于特定的數(shù)據(jù),需要考慮程序的運行效率.這兩種情況下都需要自己重新設(shè)計數(shù)據(jù)結(jié)構(gòu).即只設(shè)計自己需要的功能,并在特定情況下滿足效率上的需要.
    2006-02-01 22:31 | Flyingis
    主站蜘蛛池模板: 成人福利免费视频| 亚洲色偷精品一区二区三区| 一级毛片免费播放试看60分钟| 精品久久久久久久久免费影院| 亚洲精品在线观看视频| a毛片视频免费观看影院| 亚洲真人日本在线| 中文字幕成人免费高清在线视频| www国产亚洲精品久久久| 日本高清免费中文在线看| 亚洲第一区在线观看| fc2成年免费共享视频18| 国产亚洲精品xxx| 日本不卡免费新一区二区三区| 亚洲成a人片在线观看中文动漫| 91在线手机精品免费观看| 亚洲国产成人精品无码区在线秒播| 4399影视免费观看高清直播| 亚洲制服丝袜在线播放| 免费涩涩在线视频网| 四虎国产精品永免费| 在线播放亚洲第一字幕| 最近2019免费中文字幕6| 亚洲乱亚洲乱妇24p| 亚洲中文字幕无码爆乳av中文 | 日韩免费在线视频| 亚洲欧洲春色校园另类小说| 女人被弄到高潮的免费视频| 在线观看亚洲专区| 亚洲AV午夜福利精品一区二区| 国产成人精品免费午夜app | 亚洲欧洲国产成人精品| 麻豆国产VA免费精品高清在线| 日亚毛片免费乱码不卡一区| 亚洲AV日韩AV永久无码久久| 免费电影在线观看网站| 亚洲精品视频免费观看| 亚洲精品不卡视频| 亚洲精品亚洲人成在线观看下载| 久久精品一区二区免费看| 亚洲日韩久久综合中文字幕|