資料結構1緒論

2021-10-04 22:55:36 字數 3272 閱讀 8503

如果是輸出型引數,要加&,即使用引用傳遞

定義

預設情況下,資料結構中討論的資料都是資料物件。

邏輯結構

從開始元素、終端元素、前驅元素、後繼元素來區分

儲存結構

資料型別

抽象資料型別

adt=資料的邏輯結構+資料運算(運算描述) (資料物件 資料關係 基本運算)

用程式設計實現該資料結構

資料結構求解問題過程

演算法的五個重要的特性

演算法分析基礎

分析演算法的執行時間 原操作的執行次數(也稱為頻度)t(n)

#define max 20 

//定義最大的方階

void

matrixadd

(int n,inta[max]

[max]

,int b[max]

[max]

,int c[max]

[max]

)

1處 頻度為n+1,迴圈體執行n次

2處頻度為n(n+1)

3處頻度為n^2

所有語句頻度之和為 t(n)=n+1+n(n+1)+n2=2n2+2n+1

o(n)是t(n)的緊湊上界

例如,t(n)=2n2+2n+1=o(n2)

時間複雜度是指t(n)的最高數量級的比較

一般地、

各種不同演算法時間複雜度的比較關係如下

簡化的演算法時間複雜度分析

演算法空間複雜度分析

空間複雜度:用於度量乙個演算法在執行過程中臨時占用的儲存空間大小(函式體內分配的空間)

其他情況的演算法分析

邏輯層面 實現層面 分析層面

adt=資料的邏輯結構+資料運算(運算描述) (資料物件 資料關係 基本運算)

邏輯結構對映為儲存結構 運算實現為演算法

演算法分析

例子見** set

#include

#include

using namespace std;

#define maxsize 20

typedef

struct

set;

// 建立集合

void

createset

(set &s,

int a,

int n)

s.length=n;

}// 輸出乙個集合

void

dispset

(set s)

printf

("\n");

}// 判斷e是否在集合中

bool inset

(set s,

int e)

}return false;

}// 求集合的並集

void

add(set s1, set s2, set &s3)

s3.length=s1.length;

for(

int i=

0;i}// 交集

void

intersection

(set s1,set s2,set &s3)}}

// 差

void

sub(set s1,set s2,set &s3)}}

intmain()

;createset

(s,a,3)

;dispset

(s);

cout<<

inset

(s,1

)<

set s2;

int b=

;createset

(s2,b,2)

; set s3;

add(s,s2,s3)

;dispset

(s3)

;intersection

(s,s2,s3)

;dispset

(s3)

;sub

(s,s2,s3)

;dispset

(s3);}

```c

#include

#include

using namespace std;

#define maxsize 20

typedef

struct

set;

// 建立集合

void

createset

(set &s,

int a,

int n)

s.length=n;

}// 輸出乙個集合

void

dispset

(set s)

printf

("\n");

}// 判斷e是否在集合中

bool inset

(set s,

int e)

}return false;

}// 求集合的並集

void

add(set s1, set s2, set &s3)

s3.length=s1.length;

for(

int i=

0;i}// 交集

void

intersection

(set s1,set s2,set &s3)}}

// 差

void

sub(set s1,set s2,set &s3)}}

intmain()

;createset

(s,a,3)

;dispset

(s);

cout<<

inset

(s,1

)<

set s2;

int b=

;createset

(s2,b,2)

; set s3;

add(s,s2,s3)

;dispset

(s3)

;intersection

(s,s2,s3)

;dispset

(s3)

;sub

(s,s2,s3)

;dispset

(s3)

;}

資料結構 1 緒論

系統架構 資料結構主要包括 邏輯結構 儲存結構 資料運算 邏輯結構 線性 非線性 線性 線性表 棧 佇列 串 陣列 非線性 樹 圖 網 儲存結構 順序 鍊錶 索引 雜湊 資料運算 增 刪 改 查 排序 兩類演算法 查詢演算法 排序演算法 查詢演算法 順序 折半 雜湊 二叉排序樹 排序演算法 直接插入...

資料結構(1) 緒論

資料 data 計算機能接受並處理的所有符號總稱。資料元素 data element 資料的基本單位,在電腦程式中通常是作為乙個整體進行處理。資料項 data item 若干個資料項組成乙個資料元素 資料項是資料不可分割的最小單位。資料物件 data object 性質相同的資料元素的集合,即資料的...

1 資料結構緒論

資料 0,1 資料是資訊的載體,是描述客觀事物屬性的數 字元及所有能輸入到計算機中並被電腦程式識別和處理的符號的集合。資料是電腦程式加工的原料。資料元素 資料項 資料元素是資料的基本單位,通常作為乙個整體進行考慮和處理。乙個元素可由若干資料項組成,資料項是構成資料元素的不可分割的最小單位。多個資料項...