Re: [問題] 問一下有關ADT

看板Programming作者 ( )時間18年前 (2007/02/03 03:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《bigbite (我愛陶吉吉)》之銘言: : 究竟array算不算一種ADT呢?? : 雖然array為一群相同資料結構的元素,但是indexing卻是一種抽象化的動作, : 還是說array只是單純的指一群資料的集合呢?? : 謝謝~~ 在 general concept 上不是, 它只是一種 data representation, 屬於 implement 的一種手段。 ADT 要求 spec 跟 implement 是獨立的, 譬如今天你開了一個 stack 的 spec, 描述了需要哪些 objects 和 operations (這兩項也是 ADT 定義要求), 你可以用 array (以及一些 ints 變數) 當 data representation, 以及對應的 operations 如 push()、pop() 等實作方式, 也可以用 linked list (以及一些 ints 變數) 當 data representation, 以及對應的 push()、pop() 等 operations 的另一套實作方式。 至於為什麼在 general concept 上不是, 這是因為需要設定一個底限, 如果 array 是 ADT, 因為沒有比它更基礎的 data representation 名稱, 就算 spec 訂出來也還是要拿它本身來實作自己, 所以不會這樣歸類。 有一些 languages or libraries 會故意根據 array 的 spec, 做一個也叫做 array 或 Array 的 class 出來, 這樣的命名其實並不是很好, 為了避免混淆大部分會改名叫 vector, 這是因為通常在這個 class 之外, 還會存在一個也叫做 array 的基礎語言設施。 PS. 上上段的 int 後面加上 s 通常表「泛整數型別」的簡稱。 -- Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net School: National Tsing Hua University Department: Computer Science Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: https://it.muds.net/~uranus -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.220.28 ※ 編輯: tinlans 來自: 61.230.220.28 (02/03 03:52)

02/03 21:05, , 1F
感謝~~
02/03 21:05, 1F
文章代碼(AID): #15mvO1gr (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #15mvO1gr (Programming)