資料結構教程 第二課 抽象資料型別的表示與實現

2021-04-13 00:52:58 字數 2968 閱讀 8246

本課主題:抽象資料型別的表示與實現

教學目的:了解抽象資料型別的定義、表示和實現方法

教學重點:抽象資料型別表示法、類c語言語法

教學難點:抽象資料型別表示法

授課內容:

一、抽象資料型別定義(adt)

作用:抽象資料型別可以使我們更容易描述現實世界。例:用線性表描述學生成績表,用樹或圖描述遺傳關係。

定義:乙個數學模型以及定義在該模型上的一組操作。

關鍵:使用它的人可以只關心它的邏輯特徵,不需要了解它的儲存方式。定義它的人同樣不必要關心它如何儲存。

例:線性表這樣的抽象資料型別,其數學模型是:資料元素的集合,該集合內的元素有這樣的關係:除第乙個和最後乙個外,每個元素有唯一的前趨和唯一的後繼。可以有這樣一些操作:插入乙個元素、刪除乙個元素等。

抽象資料型別分類

原子型別

值不可分解,如int

固定聚合型別

值由確定數目的成分按某種結構組成,如複數

可變聚合型別

值的成分數目不確定如學生基本情況

抽象資料型別表示法:

一、

三元組表示:(d,s,p)

其中d是資料物件,s是d上的關係集,p是對d的基本操作集。

二、書中的定義格式:

adt 抽象資料型別名adt 抽象資料型別名

例:線性表的表示

名稱線性表

資料物件

d=任意資料元素的集合

資料關係

r1=除第乙個和最後乙個外,每個元素有唯一的直接前趨和唯一的直接後繼

基本操作

listinsert(&l,i,e)

l為線性表,i為位置,e為資料元素。

listdelete(&l,i,e)

...

二、類c語言語法

類c語言語法示例

1、預定義常量和型別

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef in status; //status是函式的型別,其值是函式結果狀態**。

2、資料結構的儲存結構

typedef elemtype first;

3、基本操作的演算法

函式型別 函式名(函式引數表)//函式名

4、賦值語句

簡單賦值:

變數名=表示式;

串聯賦值:

變數名1=變數名2=...=變數名k=表示式;

成組賦值:

(變數名1,...,變數名k)=(表示式1,...,表示式k);

結構名=結構名;

結構名=(值1,...,值k);

變數名=表示式;

變數名[起始下標..終止下標]=變數名[起始下標..終止下標];

交換賦值:

變數名<-->變數名;

條件賦值:

變數名=條件表示式?表示式?表示式t:表示式f

5、選擇語句

1、if(表示式) 語句;

2、if(表示式) 語句;

else 語句;

3、switch(表示式)

4、switch

6、迴圈語句

for(賦初值表示式;條件;修改表示式序列)語句;

while(條件)語句;

dowhile(條件);

7、結束語句

return [表示式];

return; //函式結束語句

break; //case結束語句

exit(異常**); //異常結束語句

8、輸入和輸出語句

scanf([格式串],變數1,...,變數n);

9、注釋

//文字序列

10、基本函式

max(表示式1,...,表示式n)

min,abs,floor,ceil,eof,eoln

11、邏輯運算

&&與運算;||或運算

例:線性表的實現:

adt list

資料關係: r1=

基本操作:

initlist(&l)

destroylist(&l)

listinsert(&l,i,e)

listdelete(&l,i,&e)

}adt list

listinsert(list &l,int i,elemtype e)

stu[50];

struct list

l; int printlist(struct list l)

/*listinsert before i */

main()

e:/zm/zmdoc/datastru/class02>listdemo

name stuno age score

zmofun 100001 80 1000

list length now is 1.

name stuno age score

bobjin 100002 80 1000

zmofun 100001 80 1000

list length now is 2.

三、總結

抽象資料型別定義;

抽象資料型別實現方法:一、類c語言實現 二、c語言實現 

MYSQL第二課(MySQL 資料型別)

mysql支援的資料型別非常多,選擇正確的資料型別對效能至關重要。整數 tinyint 1位元組 smallint 2位元組 mediumint 3位元組 integer 4位元組 bigint 8位元組 實數 float 4位元組 double 8位元組 decimal 字串 varchar 變長...

資料結構 抽象資料型別

stdafx.h include include include include include include cout,cin 函式結果狀態碼 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 ...

資料結構 抽象資料型別

題記 先捂上眼睛,不想演算法,不想怎麼計算時間複雜度,先刷刷 單純 的資料結構 抽象資料型別 abstract data type 抽象資料型別的定義可以由一種資料結構和定義在其上的一組操作組成,資料結構又包括資料元素以及元素之間的關係。因此抽象資料元素型別一般由元素 關係及操作三種元素來定義。d,...