線性資料結構

2022-06-02 03:06:07 字數 1854 閱讀 6600

什麼是資料結構?

資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。

線性資料結構的特點:

思考一元多項式f(x)=a0+a1x+···an-1xn-1+anxn在計算機中如何表示?

計算機如何運算5-4*3+2

線性表就像火車,按照儲存結構分為:順序表和煉表

①順序表:用陣列儲存,插入和刪除資料元素的時間複雜度都為o(n)

②單鏈表:

包括兩個域資訊,資料域和指標域,可以用指標來實現也可以用陣列來模擬。

用陣列模擬鍊錶需要注意:(1)元素陣列value  (2)後繼陣列next  (3)頭指標head

查詢元素時間複雜度為o(n),插入和刪除資料元素的時間複雜度都為o(1)

1

//用單鏈表實現線性表:獲得儲存位置、插入新元素、刪除元素

2 #include3

using

namespace

std;

4int n, value[2001], next[2001], head=0;5

int getpos(int pos)//

求煉表第i個元素的儲存位置6

1112

void insertvalue(int pos, int val)//

在第pos個元素前插入新元素val

1319

20void deletevalue(int pos)//

刪除第pos個元素

2125

26int

main()

2735 cin>>m;

36for(int i=1; i<=m; i++)

3742

if(type==3

)deletevalue(pos); 43}

44 }

view code

③迴圈鍊錶

④雙向鍊錶

參考**:

由三個部分構成:(1)順序表q[m](2)隊首指標front(3)隊尾指標rear

佇列的基本操作(手寫):

迴圈佇列的基本操作:

佇列的stl操作:

【思考】計算機如何運算5-4*3+2?

中綴算術表示式》字尾算術表示式

棧的基本操作:

處理資料集合(1,75,324,43,1353,90,46)(18,75,60,43,54,90,46)  

雜湊表:雜湊表(hash table,也叫雜湊表),是根據關鍵碼值(key value)而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。

思考:給出n個不同的正整數a[1]~a[n],它們的值在1~1000000之間。再給定乙個整數x,程式設計計算這樣的數(a[i],a[j]),1<=i【輸入】

95 12 7 10 9 1 2 3 11

13【輸出】3

//

hash

#include#include

using

namespace

std;

int a[10000010

],n,x,ans;

intmain()

scanf("%d

",&x);

for(int i=1;i<=x/2;i++)

}else ans+=a[i]*(a[i]-1)/2

; }

printf("%d

",ans);

}

view code

資料結構 線性結構

typedef int position typedef struct lnode list struct lnode 初始化 list makeempty 查詢 define error 1 position find list l,elementtype x 插入 bool insert lis...

資料結構 線性結構

線性表基本操作有 1 list makeempty 初始化乙個新的線性表 2 elementtype findkth list l,int i 根據指定的位序i,返回l中相應元素ai i是下標 3 position find list l,elementtype x 已知x,返回線性表l中與x相同的...

線性資料結構

一般將資料結構分為兩在類 線性資料結構和非線性資料結構。線性資料結構有線性表 棧 佇列 串 陣列和檔案 非線性資料結構有樹和圖。線性表 一 arraylist 1 arraylist底層採用陣列實現,當使用不帶引數的構造方法生成arraylist物件時,實際上會在底層生成長度為10的object型別...