資料結構學習筆記 一

2021-04-13 00:16:28 字數 1898 閱讀 7664

1. 資料結構

眾所周知,電腦程式是對資訊進行的加工處理.在一般情況下,這些資訊並不是沒有組織,資訊之間往往具有重要的結構關係,這就是資料結構的內容.

設有乙個**號碼薄,它記錄了n個人的名字和其相應的**號碼,假定按如下形式安排:

(a1,b1)(a2,b2)…(an,bn)

其中ai,bi(i=1,2…n) 分別表示某人的名字和對應的**號碼要求設計乙個演算法,當給定任何乙個人的名字時,該演算法能夠列印出此人的**號碼,如果該**簿中根本就沒有這個人,則該演算法也能夠報告沒有這個人的標誌。

演算法的設計,依賴於計算機如何儲存人的名字和對應的**號碼, 或者說依賴於名字和其**號碼的結構, 資料的結構, 則直接影響演算法的選擇和效率.

上面的問題是一種資料結構問題.可以將其設計為: 二維陣列, 表結構或者向量. 資料結構還要提供每種結構型別所定義的各種運算的演算法.

通過以上可以認為: 資料結構就是研究資料的論技結構和物理結構以及它們之間的相互關係,並對這種結構定義相應的運算,而且確保經過這些運算後所得到的新結構任然是原來的結構型別.

2.基本概念和術語

資料: 對資訊的一種符號表示.

資料元素: 是資料的基本單位,在程式中通常作為乙個整體進行考慮和處理. 乙個資料元素可由若干個資料項組成.

資料物件: 是性質相同的資料元素的集合. 是資料的乙個子集.

資料結構: 是相互之間存在一種或多種特定關係的資料元素的集合. 資料結構主要指邏輯結構和物理結構.其邏輯結構通常分為四類基本結構:

集合, 線性結構, 樹型結構, 圖狀結構或網狀結構.

資料結構的形式定義為: 資料結構是乙個二元組: data – structure=(d, s). 其中d是資料元素的有限集,s是d上關係的有限集.

例如複數的資料結構定義如下:  complex=(c, r).

其中c是含有兩個實數的集合, 分別表示複數的實部和虛部. r=, p實定義在集合上的一種關係 .

資料結構在計算機種的表示稱為資料的物理結構,又稱為儲存結構.

資料結構不同於資料型別,也不同於資料物件,它不僅要描述資料型別的資料物件,而且要描述資料物件各元素之間的相互關係。

抽象資料型別: 乙個數學模型以及定義在該模型上的一組操作.

抽象資料型別實際上就是對該資料結構的定義。因為它定義了乙個資料的邏輯結構以及在此結構上的一組演算法。用三元組描述如下:

(d,s,p)

資料結構的儲存方式: 順序儲存結構和鏈式儲存結構.

程式題1:巳知線性表la和線性表lb中的資料元素按值非遞減有序排列,現要求將la和lb歸併為乙個新的線性表lc,且lc中的元素仍按值非遞減有序排列。

此問題的演算法如下:

void mergelist(list la,list lb,list &lc)

initlist(lc);

i=j=1;k=0;

la-len=listlength(la);

lb-len=listlength(lb);

while((i<=la-len)&&(j<=lb-len))

else

}while(i<=la-len)

while(j<=lb-len)

}線性表的順序儲存結構

# define listsize

100typedef int datatype;

typedef struc sqlist;

線性表的插入和刪除操作運算:

插入操作

使長度為n的線性表

(a1,…a i-1,ai,…,an)

變成長度為n+1的線性表

(a1,…a i-1,x,ai,…,an)

演算法2.3

lvoid insertlist(sqlist*l,datatype x,int i)

l 刪除操作:

void deletelist(sqlist*l,int i)

資料結構學習筆記 一

資料結構研究非數值計算的程式設計問題中的操作物件,以及他們之間關係和操作 程式設計 資料結構 演算法 資料結構 資料 資料的構成方式 資料,能夠由計算機操作的物件,能夠由計算機識別,並輸入給計算機處理的符號集合。兩個特徵 可以輸入到計算機中,能被電腦程式處理 資料,資料元素,資料項,資料物件,資料結...

資料結構學習筆記(一)

資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作的學科。通常有下列四類基本結構 1 集合 2 線性結構 3 樹形結構 4 圖狀結構或網狀結構 資料結構的形式定義為 data structure d,s 其中d是資料元素的有限集,s是d上關係的有限集。結構定義中的 ...

資料結構學習筆記一

一.線性表的順序儲存的結構 define maxsize 20 儲存空間初始分配量 typedef int elemtype 重新定義資料型別 typedef struct sqlist 資料元素的序號和存放它的陣列下標之間的對應關係,如下圖所示 用陣列儲存順序表意味著要分配固定長度的陣列空間,由於...