資料結構 緒論

2021-06-26 22:09:20 字數 1810 閱讀 8455

1,資料結構的基本概念:

資料元素:表示乙個事物的一組資料稱為乙個資料元素

資料項:構成資料元素的資料稱為資料項

資料的邏輯結構:資料元素之間的相互****稱為資料的邏輯結構;資料的邏輯結構主要分為:線性結構,樹形結構和圖型結構三種;

線性結構:出第乙個和最後乙個資料元素外,每個資料元素只有乙個唯一的前驅資料元素和乙個唯一的後繼資料元素。

樹形結構:除根節點外,每個資料元素只有乙個唯一的前驅資料元素,可以有0個或若干個後繼資料元素。

圖形結構:每個資料元素可有0個或者若干個前驅資料元素和0個或若干個後繼資料元素。

資料的儲存結構:資料元素在計算機中的儲存方式成為資料的儲存結構。資料儲存結構的基本形式有兩種:一種是順序儲存結構;另乙個是鏈式儲存結構。

順序儲存結構:順序儲存結構是指把資料元素儲存在一塊連續位址空間的記憶體中,其特點是邏輯上相連的資料元素在物理上也相鄰,資料之間的邏輯關係便現在資料元素的儲存位置關係上。

鏈式儲存結構:連式儲存結構是使用指標把相互直接關聯的特點(即直接前驅節點或直接後繼節點)連線起來,邏輯上相鄰的資料元素在物理上不一定相鄰。

資料的操作:一種資料型別資料允許進行的某種操作稱為資料的操作;一種資料型別資料所有的操作稱為資料的操作集合。

資料的操作分為抽象和具體兩個角度;抽象角度下,資料的操作主要討論資料操作所完成的邏輯功能;在具體角度下,資料的操作主要討論資料操作的具體實現演算法。

資料結構主要討論的內容:表,堆疊,佇列,串,陣列,樹,二叉樹,圖等等典型的資料結構。

2,抽象資料型別

型別:型別是一組值的集合。

資料型別:資料型別是指乙個型別和定義在這個型別上的操作集合。

抽象資料型別:是指乙個邏輯概念上的型別和這個型別上的操作集合。

資料型別和抽象資料型別的區別:資料型別通常指的是高階語言程式語言支援的基本資料型別。而抽象資料型別在基本資料型別支援下使用者新設計的資料型別(表,二叉樹等典型資料結構就是抽象資料結構)。

3,演算法和演算法的時間複雜度

演算法:是描述求解問題方法的操作步驟集合。

描述演算法的語言有三種形式:文字形式,偽**形式和程式語言形式。

演算法的性質:輸入性,輸出性,有限性,確定性,可執行性。

演算法設計應滿足的目標:正確性,可讀性,健壯性,高時間效率,高空間效率。

演算法的時間效率:通常採用事前分析方法:主要關注問題的規模,演算法的耗時與演算法所處理資料的個數n的函式關係的分析稱作演算法的時間效率分析。演算法的時間效率分析主要是分析演算法的耗時與演算法所處理資料個數n的數量級意義上的函式關係。

演算法的時間複雜度分析通常採用o(f(n))表示法讀作大o的f(n);

定義:t(n)=o(f(n))當且僅當存在正常書c和n0,對所有的n(n>=n0)滿足t(n)<=cf(n)

4,演算法書寫規範

演算法應具有可讀性,演算法的可讀性主要體現在演算法符號的命名規範和演算法書寫格式上:演算法的符號命名規範如下:

(1),各種符號均以英語單詞命名,所有命名都應見名知意。

(2),變數名字母均為小寫:若單詞多與乙個,則第二個單詞的首字母大寫。如:leftchild,rightchild。

(3),自定義結構體名,變數名和檔名字母均為小寫,但所有單詞(包括第乙個單詞的首字母大寫),如自定義結構體名:nodetype

(4),自定義結構體名,變數名,常量名和檔名中的單詞太多時,使用適當的縮寫形式。

演算法的書寫格式規範規定:

(1),#include先包括系統標頭檔案,再包括自定義標頭檔案。

(2),演算法採用縮排格式書寫。

(3),演算法簡單時,通常不分段;演算法複雜時,可分成若干段,每段之間空一行。

(4),為增加演算法的可讀性,演算法中應新增適當的注釋語句。

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 緒論

程式 資料結構 演算法 資料 對客觀事物的符號表示。資料元素 資料的基本單位,由若干個資料項組成。資料項是資料不可分割的最小單位。資料物件 性質相同的資料元素的集合,使資料的乙個子集。資料元素是相互之間存在一種或多種特定關係的資料元素的集合。預定義常量型別 函式結果狀態嗎 define true 1...

資料結構緒論

資料結構是一種抽象資料的過程,這種能力是任何工具都無法代替的。學習資料結構的目的 資料結構是計算機專業的基礎,它為幾乎所有的軟體設計的基礎。同時他也培養求解複雜問題的能力。那麼,什麼是資料結構呢,這個概念是很重要的,人月神話上有一段話,說人們往往喜歡將問題分解開來處理,但是這樣一來造成了對整個問題的...