資料結構學習筆記一

2021-08-08 02:59:06 字數 2458 閱讀 5144

一.線性表的順序儲存的結構**

#define maxsize 20 /*儲存空間初始分配量*/

typedef int elemtype; /*重新定義資料型別*/

typedef struct

sqlist;

資料元素的序號和存放它的陣列下標之間的對應關係,如下圖所示:

用陣列儲存順序表意味著要分配固定長度的陣列空間,由於線性表中可以進行插入和刪除操作,因此分配的陣列空間要大於等於當前線性表的長度。

儲存器中的每個儲存單元都有自己的編號,這個編號稱為位址。

由於每個資料元素,不管它是整型,字元型,它都是需要占用一定的儲存單元空間的。假設占用的是c個儲存單元,那麼線性表中的第i+1個資料元素的儲存位置和第i個資料元素的儲存位置滿足以下的關係:

注:c語言中的陣列是從0開始的,線性表是從1開始的。

接下來是對線性表的一些操作:

①獲取元素的操作

#define ok 1

#define error 0

#define true 1

#define false 0

typedef int status;

/*初始條件:順序表l已經存在

/*操作結果:用e返回l中第i個資料元素的值

status getelem(sqlist  l, int i,elemtype *e)

②插入操作

/*初始條件:順序表l已經存在

/*操作結果:在l中第i個位置之前插入新的資料元素e,l的長度加1

status listinsert(sqlist *l,int i ,elemtype  e)

l->data[i-1]=e;

l->length++;

return ok; }

③刪除操作

/*初始條件:順序表l已經存在

/*操作結果:刪除l中第i個資料元素,並用e返回其值,l的長度減1

status listdelete(sqlist *l, int  i,  elemtype *e)

l->length--;

return ok; }

線性表順序儲存的優缺點:

優點:無須為表示表中元素之間的邏輯關係而增加額外的儲存空間

可以快速的讀取表中的任一位置的元素

缺點: 插入和刪除操作需要移動大量的元素

當線性表的長度變化比較大時,難以確定儲存空間的容量

造成儲存空間的「碎片」

二、線性表的鏈式儲存結構

針對順序儲存,我們知道它的刪除和插入需要移動大量的元素,這顯然是耗很多時間的。

針對以上問題,我們使用了另外一種儲存方式:鏈式儲存方式。如:下圖所示:

乙個節點包括兩個部分,分別是資料域和指標域,資料域儲存的是資料元素的資訊,指標域是儲存的是其後繼的位置。

從上圖我們可以看到,結點的儲存不是按照順序儲存的,它可以隨時儲存在記憶體中的任何位置,大大的方便了增加和刪除。

我們把鍊錶的第乙個結點的儲存位置叫做頭指標,那麼整個鍊錶的訪問就是必須從頭指標開始進行,那最後乙個指標往**指呢?

最後乙個,當然就意味著後繼不存在,所以我們就規定,線性鍊錶的最後乙個結點指標設定為空,即null,如下圖所示:

我們有的時候,為了方便對鍊錶進行操作,會在單鏈表的第乙個結點前附設乙個結點,稱為頭結點。頭結點的資料域可以不儲存任何資訊,頭結點的指標域指向第乙個結點的指標,如下圖所示:

單鏈表的c語言結構:

p->data=ai; p->data的值是乙個資料元素

p->next的值是乙個指標。

①單鏈表的元素獲取

由於它的儲存方式是任意存放,不是像順序表順序存放,所以獲取i個元素位置,只能從頭開始找。

status getelem(linklist  l,  int  i, elemtype * e)

if ( !p ||  j>i)

return error;

*e=p->data;

return ok ; }

資料結構學習筆記 一

1 資料結構 眾所周知,電腦程式是對資訊進行的加工處理.在一般情況下,這些資訊並不是沒有組織,資訊之間往往具有重要的結構關係,這就是資料結構的內容.設有乙個 號碼薄,它記錄了n個人的名字和其相應的 號碼,假定按如下形式安排 a1,b1 a2,b2 an,bn 其中ai,bi i 1,2 n 分別表示...

資料結構學習筆記 一

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

資料結構學習筆記(一)

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