ADT、C和Java,ADT,CJava
第5章,資料抽象使得使用者程式員在編寫客戶程式時,擺脫該資料類型的實現細節而僅僅關心該資料類型的介面。在電腦科學中,有一些重要的資料抽象——資料結構,應該儘早地介紹。電腦科學研究的資料結構主要有線性表、棧、隊列、集合、圖、樹等等。
這裡先談談《資料結構》課程與實現語言的事。
《資料結構(C語言版)》嚴蔚敏、吳偉民是經典教材,作者在前言中清楚的說明:
“全書中採用類C語言作為資料結構和演算法的描述語言,在對資料的儲存結構和演算法進行描述時,盡量考慮C語言的特色,如利用數組的動態分配實現順序儲存結構等。雖然C語言不是抽象資料類型的理想描述工具,但鑒於目前和近一兩年內(註:版次1997.4),“物件導向程式設計”並非資料結構的先修課程,故本書未直接採用類和對象等設施,而是從C 語言中精選了一個核心子集,並增添C++語言的引用調用參數傳遞方式等,構成了一個類C描述語言。它使本書對各種抽象資料類型的定義和實現簡明清晰,既不拘泥於C語言的細節, 又容易轉換成能上機執行的C或C++程式。 ”
真的很奇怪為什麼直到現在還有很多人用C語言版資料結構。雖然《資料結構(C語言版)》很容易轉換成能上機執行的C或C++程式,管你容易不容易,知道什麼叫工具嗎?越方便越好。如果Java、C#比C方便,就應該選Java/C#。這裡也不是鍛煉抽象思維的場所?學習高等數學、離散數學不夠的話,可以旁聽數學系的課。
其實yqj2065想說的是:從學習物件導向的角度,資料結構是一個很好的練習場,比GUI更好。這也是我將它們放在【第5章鏈表、數組和棧】的原因。注意,《編程導論》不是《資料結構》課程,所以僅介紹鏈表(linked list)和數組(array)和棧,將它們作為熟悉分支迴圈、物件導向的練習場。
在《資料結構》課程中,抽象資料類型(Abstract Data Type、ADT)是一個重要的概念。而在這裡它是一個可選的術語。
為資料結構建模的ADT,描述的內容包括:(1)資料元素的集合、(2)元素之間的關係和(3)該ADT擁有的操作。我們分而治之
(3)使用某個Java介面I描述該ADT擁有的操作,
(2)用一個資料類型X(通常是結點)描述該ADT的資料元素並以X的對象之間的關係描述元素之間的關係。
(3)以介面的實作類別管理元素的集合。
隨便說一下,“抽象資料類型——一個數學模型以及定義在該模型上的一組操作”,這不是為何抽象資料類型的答案,而是資料類型。
ADT是為某一種類的具有相同行為的資料結構建立的數學模型——例如棧應該具有壓入和彈出的行為,或者為具有相似語義的多種程式設計語言的某一資料類型建立的數學模型——例如各種語言中都有整數這一資料類型。
元素之間的關係是重點,關係通常以序偶來描述。如棧頂元素被最先彈出,這種關係反映在實現代碼中;而鏈表元素之間的關係比較直觀,由next設定。
使用Java學習資料結構,只需要3個基本武器:結點、數組和String。
為什麼我的eclipse(java版的)在裝了ADT之後重啟會變成eclipse for c/c++版的???
你安裝了 Android 外掛程式中的 NDK 部分?它需要 CDT 支援嗎?如果是的話,那就是這麼回事啦。
標題顯示什麼不重要,Eclipse 是由 feature 和 plugin 堆積在一起,feature 是接受版本管理的基本單位,feature 包括 feature 和 plugin,你可以僅使用 plugin 而不讓它屬於任何 feature,但這樣你就不能使用版本管理,有版本管理是有好處的,比如你原來的 1.0.0,後來你升級到 1.0.1,但你覺得新版本不穩定,想用回 1.0.0,這時你不知道手工刪除 1.0.0 再來安裝 1.0.1,兩個版本檔案都在,只是 1.0.0 被禁用了,通過版本管理你可以啟用 1.0.0 同時禁用 1.0.1。
Eclipse 的標題是通過 Perspective 的名字來顯示的。也就是說,可能你當前的 Perspective 是 C/C++。在 Eclipse 中,window 有兩種,一種是 Editor,另一種是 View;Editor 和 View 組合成一個 Perspective 透視圖,它就是從不同的角度看待同一個工作區 workspace。你隨時可以切換 Perspective。比如,你在 debug 時用 debug 透視圖,裡面開啟了調試用的 view。你在編寫代碼時使用 Java 或 C/C++ 透視圖,裡麵包括編譯錯誤提示 problems, docs, declarations,outline,make file target 等視圖,在同步代碼到 CVS 上時你還可以切換到 CVS 透視圖。
多個 feature 可以組成 Product 並給它一個 slash image 啟動圖片,在 eclipse.ini 裡面指定當前的 product 是什麼,這就相當於說,當前最主要使用的 features 的組合是什麼,不過當前主要的 product 是什麼並不影響各個 feature 是 enable 還是 disable,它們依然都能工作。
你想切換到原來的 Java 就用 Eclipse 菜單 Window > Open Perspective > Other 找到你要的透視圖。
一個光透透的只有檔案資源管理和編譯與版本管理的 Eclipse platform,可以通過安裝各種 feature,像 JDK, WST,CDT 最後疊加成你想要的任何東西,如果你安裝了各種 Java 開發的外掛程式它就叫 Eclipse for Java,如果你偏向於安裝了各種 C/C++ 外掛程式,它的名字就叫 Eclipse for C/C++,本質上它的核心是完全相同的,就是 Eclipse Platform + 各種用途的外掛程式。
我可以下載一個 Eclipse Classic 或 Eclipse Java 然後安裝各種外掛程式最後得到一個 Eclipse for C++ 一樣的外掛程式配置,功能可以做到完全相同。Eclipse for XXX 僅代表它已經安裝了哪方面的外掛程式,如果沒有你想要的你可以開啟 Eclipse 菜單 Window > Preference ># Install / Update 在 Available Software Site 中 Enable 所有的網站,然後再菜單 > Help > Eclipse Marketplace 搜尋各種外掛程式安裝。記得,先啟用 Available Software S......餘下全文>>
java中什是ADT,怎寫ADT?
一個ADT是一個僅由儲存的資料類型和可能在這個資料類型上進行的操作定義的。開發人員們只能通過ADT的操作方法來訪問ADT的屬性,而且他們不會知道這個資料類型內部各種操作是如何?的。