資料結構是計算機儲存、組織資料的方式,指相互之間存在一種或多種特定關係的資料元素的集合。同高效的檢索演算法和索引技術有關。大多數資料結構都由數列、記錄、可辨識聯合、引用等基本型別構成。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。
聯絡:演算法+資料結構=程式。
資料結構一般分為邏輯資料結構和儲存(物理)資料結構兩種。
一、 邏輯結構
1、線性結構。結構中的資料元素之間存在一對一的線性關係。除第乙個和最後乙個資料元素外,每個資料元素只有乙個前驅和乙個後繼資料元素。
2、樹結構。結構中的資料元素之間存在一對多的層次關係。除根結點外,每個資料元素只有乙個前驅資料元素,可有0個或若干個後繼資料元素。
3、圖結構。結構中的資料元素之間存在多對多的任意關係。每個資料元素可有0個或若干個前驅資料元素和0個或若干個後繼資料元素。
資料結構中,從邏輯上可以把資料結構分成線性結構和非線性結構。
二、物理結構
顧名思義就是資料在電腦中怎麼儲存資料結構。資料元素及其關係在計算機儲存器中的儲存方式。又稱儲存結構。
儲存方式有兩種:
1、順序表(陣列)
2、鍊錶(不連續)
線性表
線性表的基本運算
1、 求表長——求線性表中元素的個數。
2、 遍歷——從左到右(或從右到左)掃瞄(或讀取)表中的各元素。
3、 按編號查詢——找出表中第i個元素。
4、 按特徵查詢——按某個特定值查詢線性表。
5、 插入——在第i個位置上(即原第i個元素前)插入一新元素。插入資料元素insertlist (順序表的長度l,插入的字元x,插入的位置i)
6、 刪除——刪除原表中的第i個元素。刪除資料元素delete(順序表的長度,刪除的位置i)
7、 排序——按元素某特徵值的遞增(或遞減)排序,重排表中各元素。
線性表有兩種儲存方式:
2、 鍊錶的形式。鍊錶不是位址連續的空間,他的插入和刪除不需要移動元素,它看到記憶體有空餘位址就可以毫無顧忌地擠進去。
線性表的鏈式表示和實現:
單鏈表中構成鍊錶的結點只有乙個指向直接後繼結點的指標域
其結構特點:邏輯上相鄰的資料元素在物理上不一定相鄰。
單鏈表組成的結點有兩個域:
1、 資料域。資料域可以存放儲存元素的數值資料
2、 指標域。指標域是指向直接後繼的儲存位址。
單鏈表結點的插入。insertlist(head,插入的位置3,插入的值x)
單鏈表結點的刪除。deletelist(head,刪除的位置i)
資料結構及演算法知識(一)
一 有序表的歸併演算法 思想 在不破壞原有表的情況下 將兩個有序表合併成乙個有序表可以採用二路歸併演算法。分別掃瞄la和lb兩個有序表,當兩個有序表都沒有掃瞄完時迴圈 比較la lb的當前元素,將其中較小的元素放入lc中,再從較小元素所在的有序表中取出下乙個元素。重複這一過程直到la或lb比較完畢,...
資料結構和演算法 一 資料結構和演算法概念
bilibili黑馬2020版資料結構和演算法教程 2020版資料結構和演算法 首先我們要知道什麼是資料結構 官方解釋 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。通俗點講 它是乙個操作物件,用來把資料元素按照一定的關係組織起來的集合,用來組織和...
資料結構和演算法 一
資料結構是計算機儲存 組織資料的方式目前只需要記住這點就可以了 一般的資料結構都有以下四種操作 讀取,查詢,插入,刪除 我們一般說明乙個程式的執行速度,就是看以上四種操作的步數的多少 同時,我們也知道了第乙個重要理論 操作的速度,並不按時間來計算,而是按步數計算 由於新舊計算機效能的差距,我們不能直...