1 資料結構是 adt(抽象資料型別 abstract data type) 的物理實現。
2 lobert l.kruse 在《資料結構與程式設計》一書中,將乙個資料結構的設計過程分成抽象層、資料結構層和實現層。其中,抽象層是指抽象資料型別層,它討論資料的邏輯結構及其運算,資料結構層和實現層討論乙個資料結構的表示和在計算機內的儲存細節以及運算的實現。
3 一般認為,乙個資料結構是由資料元素依據某種邏輯聯絡組織起來的。對資料元素間邏輯關係的描述稱為資料的邏輯結構;資料必須在計算機內儲存,資料的儲存結構是資料結構的實現形式,是其在計算機內的表示;此外討論乙個資料結構必須同時討論在該類資料上執行的運算才有意義。
4 在許多態別的程式的設計中,資料結構的選擇是乙個基本的設計考慮因素。許多大型系統的構造經驗表明,系統實現的困難程度和系統構造的質量都嚴重的依賴於是否選擇了最優的資料結構。
5 許多時候,確定了資料結構後,演算法二就容易得到了。有些時候事情也會反過來,我們根據特定演算法來選擇資料結構與之適應。不論哪種情況,選擇合適的資料結構都是非常重要的。選擇了資料結構,演算法也隨之確定,是資料而不是演算法是系統構造的關鍵因素。這種洞見導致了許多種軟體設計方法和程式語言的出現,物件導向的程式語言就是其中之一。
6 尋求數學模型的實質是分析問題,從中提取操作的物件,並找出這些操作物件之間含有的關係,然後用數學的語言加以描述。
8 運算是由計算機來完成,這就要設計相應的插入、刪除和修改的演算法 。也就是說,資料結構還需要給出每種結構型別所定義的各種運算的演算法。
9 資料處理是指對資料進行查詢、插入、刪除、合併、排序、統計以及簡單計算等的操作過程。在早期,計算機主要用於科學和工程計算,進入八十年代以後,計算機主要用於資料處理。據有關統計資料表明,現在計算機用於資料處理的時間比例達到80%以上,隨著時間的推移和計算機應用的進一步普及,計算機用於資料處理的時間比例必將進一步增大。
10 資料元素相互之間的關係稱為結構。順序儲存結構是一種最基本的儲存表示方法,通常借助於程式語言中的陣列來實現。鏈式儲存結構通常借助於程式語言中的指標型別來實現。演算法的設計取決於資料(邏輯)結構,而演算法的實現依賴於採用的儲存結構。資料的運算是在資料的邏輯結構上定義的操作演算法,如檢索、插入、刪除、更新的排序等。
11 資料結構不同於資料型別,也不同於資料物件,它不僅要描述資料型別的資料物件,而且要描述資料物件各元素之間的相互關係。可以認為,資料型別是在程式設計中已經實現了的資料結構。另一方面,在程式設計過程中,當需要引入某種新的資料結構時,總是借助程式語言所提供的資料型別來描述資料的儲存結構。
12 我們用乙個由若干位組合起來形成的乙個位串表示乙個資料元素,通常稱這個位串為元素或結點。當資料元素由若干資料項組成時,位串中對應於各個資料項的子位串稱為資料域。
13 抽象資料型別需要通過固有資料型別(高階程式語言中已實現的資料型別)來實現。一旦定義了乙個抽象資料型別及具體實現,程式設計中就可以像使用基本資料型別那樣,十分方便地使用抽象資料型別。
14 線性表這樣的抽象資料型別,其數學模型是:資料元素的集合,該集合內的元素有這樣的關係:除第乙個和最後乙個外,每個元素有唯一的前趨和唯一的後繼。可以有這樣一些操作:插入乙個元素、刪除乙個元素等。
這是一些對資料結構的理解和總結,感覺很好,於是記下來。
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...
資料結構 資料結構演算法
分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...
談OpenCV的資料結構Mat,是如此強大
還是乙個實時性要求的程式最近把我弄得有些上火。為了提高 執行的速度,我也是又新啃東西學了。由於我 裡使用了vector,網上搜來搜去有人說vector慢,又有人說stl裡的sort排序速度是我等常人不能企及的,有人說要少resize,這個重新分配記憶體非常耗時,又有人說要用swap來徹底刪除不要的記...