資料結構 緒論

2021-08-10 04:13:17 字數 2575 閱讀 5734

n.wirth 的著名公式:程式 = 演算法 + 資料結構

演算法5個特性:有窮性、確定性、可行性、有輸入、有輸出。

資料結構是相互之間存在一種或多種特定關係的資料元素的集合。(資料 + 結構)

1.邏輯結構:集合結構(

無關係)、線性結構(

一對一)、樹形結構(

一對多)、圖形結構(

多對多)。

2.儲存結構(物理結構):順序儲存結構、鏈式儲存結構、索引儲存結構、雜湊(雜湊)儲存結構。

1.自定義資料型別

(1)定義結構體的方法:struct  結構體名稱 ;

(2)定義新型別名的方法:typedef 資料型別 型別名;

typedef struct student 	//宣告結構體型別struct student

st; //用st別名表示student結構體

//定義:st student1; ( 等同於struct student student1;) 賦值:student1.name = "li lin"; student1.*** = 'm'; student1.age = 18;

typedef int elemtype; // 為了程式的更改與維護,給int取別名

2.儲存空間分配

(1)靜態儲存空間分配:指變數在定義時就分配儲存單元並一直保持不變,直到整個程式結束。int a[10];//一遇到該語句,系統就為a陣列分配10個int大小的整數空間

(2)動態儲存空間分配:指在程式執行期間根據需要動態地分配儲存空間的方式。

對記憶體的動態分配是通過系統提供的庫函式來實現的,主要有malloc( ),calloc( ),free( ), realloc( )這4個函式。

通常使用 malloc( ) 函式為乙個指標變數分配一片連續空間,當不需要時使用 free( ) 函式釋放指標變數所指向的空間。

//函式原型 void * malloc(unsigned int size);//返回值為指標所指向分配區域的首位址

//函式原型 void * free(void * p); //釋放指標變數所指向的已分配的動態空間

int *p; p = (int *)malloc(10 *sizeof(int)); free(p);

3.抽象資料型別

adt 抽象資料型別名

基本運算的宣告格式:基本運算名(參數列):運算功能描述

兩種引數:值引數(只為運算提供輸入值,不改變實參的值)與址引數(除提供運算的輸入值外還改變實參)

//傳值型,不改變實參

void swap(int x, int y)//呼叫swap(a, b)後會發現形參x與y的值發生交換,但是實參a與b的值沒有發生交換

//傳址型,改變實參

void swap(int *x, int *y)//採用指標的方式來回傳形參的值,呼叫方式為swap(&a, &b)

void swap(int &x, int &y)//採用引用型形參,實現形參與實參同步改變,呼叫方式為swap(a, b)

//擴充套件:兩個變數交換的三中方法

t = a; a = b; b = t; //三變數法(常用)

a = a + b; b = a - b; a = a - b; //和差法

a = a ^ b; b = a ^ b; a = a ^ b; //異或法

4.演算法分析

(1)時間複雜度:評估執行程式所用的時間(cpu時間)

(2)空間複雜度:評估執行程式所需的儲存空間(記憶體空間)

注:時間複雜度往往比空間複雜度更容易出問題,一般我們只討論時間複雜度

大o表示法:t(n)=o(f(n))   f(n)為問題規模n的某個函式(程式執行次數函式)n為問題規模

推導大o階方法:

1.用常數1取代執行時間中的所有加法常數。

2.在修改後的執行時間次數中,只保留最高端項。

3.如果最高端項的係數存在,則去除這個係數。

如:f(n)= 5n^3+2n+1   則為t(n) = o(n^3)

一些時間複雜度的關係:

o(1) < o(log2n) < o(n)< o(nlog2n) < o(n^2) < o(n^3) < o(2^n) < o(n!) < o(n^n)

資料結構 資料結構緒論

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

資料結構 緒論

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

資料結構緒論

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