資料結構 第一章 緒論

2021-06-25 23:48:06 字數 1809 閱讀 7360

程式設計的實質是資料表示和資料處理。資料要能被計算機處理,首先必須能夠儲存在計算機的記憶體中,這項任務稱為資料表示,其核心是資料結構;乙個實際問題的求解必須滿足各項處理要求,這項任務稱為資料處理,其核心是演算法。資料結構課程主要是討論資料表示和資料處理的基本方法。

1.1

1.2

(1)資料的邏輯結構:線性表、書、圖等資料結構,其核心是如何組織待處理的資料以及資料之間的關係。

(2)資料的儲存結構:如何將線性表、書、圖等資料結構儲存到計算機的儲存器中,其核心是如何有效的儲存資料以及資料之間的邏輯。

(3)演算法:如何基於資料的某種儲存結構實現插入、刪除、查詢等基本操作,其核心是如何有效的處理資料。

(4)常用資料處理技術:包括查詢技術、排序技術、索引技術。

1.3

(1)資料是資訊的載體,在電腦科學中是指所有能輸入到計算機中並被電腦程式識別和處理的符號集合。資料可分為兩類:數值資料、非數值資料。

(2)資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。構成資料元素的不可分割的最小單位稱為資料項。

資料結構是指相互之間存在一定關係的資料元素的集合。按照視點的不同資料結構分為邏輯結構和儲存結構。

(3)資料的邏輯結構是指資料元素之間邏輯關係的整體。資料結構分為四類:集合、線性結構、樹結構、圖結構。

資料的儲存結構又稱為物理結構,是資料及其邏輯結構在計算機中的表示。通常有兩種儲存結構:順序儲存結構(佔據儲存空間少)、鏈結儲存結構(佔據儲存空間多、靈活)

(4)資料的邏輯結構是面向問題的,資料的儲存結構是面向計算機的。

(5)資料型別是一組值得集合以及定義於這個值集上的一組操作的總稱。

(6)抽象就是抽出問題本質的特徵而忽略非本質的細節,是對具體事物的乙個概括。

(7)抽象資料型別簡稱adt,是乙個資料結構以及定義在該結構上的一組操作的總稱。adt可以理解為對資料型別的進一步抽象,資料型別和adt的區別僅在於:資料型別指的是高階程式語言支援的基本資料型別,而adt指的是自定義的資料型別。

1.4

(1)資料型別是一組值得集合以及定義於這個值集上的一組操作的總稱。

(2)抽象就是抽出問題本質的特徵而忽略非本質的細節,是對具體事物的乙個概括。

(3)抽象資料型別簡稱adt,是乙個資料結構以及定義在該結構上的一組操作的總稱。adt可以理解為對資料型別的進一步抽象,資料型別和adt的區別僅在於:資料型別指的是高階程式語言支援的基本資料型別,而adt指的是自定義的資料型別。

(4)度量演算法效率的方法:事後統計,缺點:編寫程式實現演算法花費較多時間和精力,所得實驗結果依賴於計算機的軟硬體等環境因素,有時容易掩蓋演算法本身的優劣。事前分析估算——漸進複雜度。

(5)除了計算機軟硬體等因素,問題規模是影響演算法時間代價的最主要因素。問題規模是指輸入量的多少。

為了客觀地反應乙個演算法的執行時間,可以用演算法中基本語句的執行次數來度量演算法的工作量。基本語句是執行次數與整個演算法的執行次數成正比的語句。

(6)只考察當問題規模充分大時,演算法中基本語句的執行次數在漸近意義下的階,稱作演算法的漸進時間複雜度,簡稱時間複雜度,通常用大o記號表示。

(7)演算法的空間複雜度是指在演算法的執行過程中,需要的輔助空間數量。輔助空間是除了演算法本身和輸入輸出資料所佔據的空間外,演算法臨時開闢的儲存空間。通常記作:s(n)=o(f(n))     其中n是問題規模

(8)分析演算法的時間複雜度的基本方法:找出所有語句中執行次數最大的那條語句作為基本語句,計算機基本語句的執行次數,取其數量級放入大o中即可。

資料結構第一章緒論

緒論主要是對計算機資料結構一書有大致了解,系統的講解資料結構在程式結構的應用,資料結構的相關概念,演算法在程式中的應用,從而從巨集觀上了解資料結構,更有利於以後學習。1 資料結構在程式中的應用 其實乙個公式就可以了解程式和演算法還有資料,即資料結構 演算法 程式,由公式可知資料結構是程式的一部分。2...

資料結構 第一章 緒論

用計算機求解任何問題都離不開程式設計,程式設計的實質是資料表示和資料處理。一,資料結構基本概念 1.資料是資訊的載體,是電腦程式處理的原料。可以將資料分為兩大類 一類是整數實數等數值資料,一類是文字,影象聲音,圖形等非數值資料。資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。構...

第一章 資料結構緒論

本文章作為學習筆記,大量參考了 大話資料結構 這本書,因為沒有用於商業活動,而且也算是為作者做了乙個小小的宣傳,作者應該不會告我侵權,哈。資料結構的概念 是相互之間存在的一種或多種特定關係的資料元素的集合。學了半天這個概念得知道吧!資料結構有什麼用?如果你想走程式設計師的道路,如果你不想一輩子搬磚,...