記憶體和外存1.1.1
學習資料結構的必要性
我們知道,雖然每個人都懂得英語的語法與基本型別,但是對於同樣的題目,
每個人寫出的作文,水平卻高低不一。
程式設計也和寫英語作文一樣,雖然程式設計師都懂得語言的語法與語義,但是對於同樣的問題,程式設計師寫出來的程式不一樣。
有的人寫出來的程式效率很高,有的人卻用複雜的方法來解決乙個簡單的問題。
只有多思索、多練習,才能提高自己的程式設計水平;否則,書看得再多,提高也不大。記得剛學程式設計時,常聽人說程式設計水平要想提高,
最重要的是多看別人寫的程式,多去思考問題。從別人寫的程式中,我們可以發現效率更高的解決方法;
1、 資料(data)
資料是外部世界資訊的載體,
2、 資料元素(data element)和資料項(data item) 資料項有時也稱為字段(field)或域(domain)。
3、 資料物件(data object)
資料物件是性質相同的資料元素的集合, 是資料的乙個子集。例如,整數數
據物件是,字元資料物件是。
4、 資料型別(data type)
資料型別可分為兩類:一類是非結構的原子型別,如 c#語言中的基本型別
(整型、實型、字元型等);另一類是結構型別,它的成分可以由多個結構型別
組成,並可以分解。結構型別的成分可以是非結構的,也可以是結構的。例如,
c#語言中陣列的成分可以是整型等基本型別,也可以是陣列等結構型別。
5、 資料結構(data structure)
資料結構是相互之間存在一種或多種特定關係的資料元素的集合。在任何問
題中,資料元素之間都不是孤立的,而是存在著一定的關係,這種關係稱為結構
(structure)。根據資料元素之間關係的不同特性,通常有
4類基本資料結構:
(1) 集合(set):如圖 1.1
(a)所示,該結構中的資料元素除了存在「同屬於乙個集
合」的關係外,不存在任何其它關係。
(2) 線性結構(linear structure):如圖 1.1
(b)所示,該結構中的資料元素存在著一
對一的關係。
(3) 樹形結構(tree structure):如圖 1.1
(c)所示,該結構中的資料元素存在著一對
多的關係。
(4) 圖狀結構(graphic structure):如圖 1.1
(d)所示,該結構中的資料元素存在著
多對多的關係。
人們越來越重視資料結構,認為程式設計的實質是確定資料結構,加上設計乙個好
的演算法,這就是人們常說的「程式=資料結構+
演算法」。
下面只從演算法的特性、演算法的評價標準和演算法的時間複雜度等三個
方面進行介紹。
3、 健壯性(robustness)。乙個演算法應該具有很強的容錯能力,當輸入不合法的數
據時,演算法應當能做適當的處理,使得不至於引起嚴重的後果。健壯性要求表明
演算法要全面細緻地考慮所有可能出現的邊界情況和異常情況,並對這些邊界情況
和異常情況做出妥善的處理,盡可能使演算法沒有意外的情況發生。
資料結構 1
線性結構 線性表,棧,佇列,串。線性結構特點 結構中的資料元素之間存在一對一的線性關係。線性表 線性表 最簡單 最基本 最常用的資料結構。操作不受限定。順序表 用順序儲存方式的線性表叫順序表。線性表的順序儲存方式 在記憶體中用一塊位址連續的空間一次存放線性表的資料元素。特點 表中相鄰的資料元素在記憶...
資料結構 1
資料結構是研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作的一門課程。具體地說,資料結構指的是資料元素之間的邏輯結構 儲存結構以其資料的抽象運算,即按某種邏輯關係組織起來的一組資料,再按一定的儲存表示方式把它們儲存在計算機的儲存器中,並在這些資料上定義乙個運算的集合.資料結構 ...
資料結構 1
1.基本資料組織和資料處理方法 2.資料結構的邏輯特性和儲存結構設計 演算法設計 基本資料結構 線性表,陣列,棧,樹,佇列,二叉樹,串,圖 3.資料如何表示 選擇合適的資料結構 資料運算如何實現 資料運算如何高效實現 4.資料結構基本概念,基本原理和基本方法 練習 優化 5.資料 所有能夠輸入到計算...