資料結構之線性表 順序儲存

2021-08-15 09:24:36 字數 1491 閱讀 2829

線性表作為一種最簡單的資料結構,在資料的管理和運用方面有著很大的作用,而這種特殊的資料集合,其自身有著很強的特點:

線性表:線性表是n個型別相同的資料元素的有限集合,且n大於0,除第乙個元素無直接前驅,和最後乙個元素沒有直接後繼以外,其餘的每個元素都有乙個直接前驅和乙個直接後繼,而且元素之間具有一對一的關係。

線性表的儲存分為兩種:

1.順序儲存:《關係線性化,節點順序存》即用一組連續的儲存單元依次儲存線性表的各個元素。

順序表的定義

#define maxsize 100

typedef struct

seqlist

ps: 資料元素的a1的序號為1,而其對應存放在elem的陣列的序號為0.

順序表的基本運算:

1.1查詢操作:由順序表的特性,可將查詢分為按序號查詢和按值查詢;

按序號查詢:getdata (l,i)查詢順序表l的第i個元素,主要語句為l.elem[i-1].

按值查詢;locate(l,e)查詢順序表l中值為e的元素《採用順序查詢法,依次將順序表中的元素和e作對比,如果找到,則返回其下標i-1,若沒找到,則返回-1作為標誌,>

int locate(seqlist l,elemtype e)

1.2插入操作:

對於順序表插入操作需要移動插入點之後的所有資料為插入值騰讓儲存位置,實現**如下:

define ok 1

define no 0

int inslist(seqlist *l, int i, elemtype e) //表示在順序表l中i的位置前插入值為額e的元素

可以看出線性表的插入操作是從後向前移動元素,避免其它元素被覆蓋。

1.3刪除操作:

刪除線性表的某個元素,並且將其後面的元素集體向前移動乙個位置,其**如下;

int delllist(seqlist *l,int i,elemtype *e)       //刪除順序表了中第i個元素,並將其值e作為返回值

可以發現,刪除和插入相反,其for迴圈中的指標是從前向後移動的,為的是逐步填補刪除所產生的空缺。

1.4 線性表的和並:

將有序的la和lb合併為乙個順序表lc;

其主要思想是:分別將兩個有序的順序表的各個元素依次從小到大對比,誰小就先將其值放在lc中,如果對比完成後還是有剩餘,則直接將剩餘的值放在lc表的後面即可,下面給出其**; 

void mergelist(seqlist *la, seqlist *lb,  seqlist *lc)

while(jlast)

lc->last=la->last+lb->last;

}

資料結構之線性表 順序儲存

從新在學習一遍資料結構,每天盡量都寫點!fuction the list struct by xiaolong date 2012年 03月 13日 星期二 16 50 12 cst 功能 線性表的順序儲存實現 主要功能 include include define max size 20 defi...

資料結構 線性表之順序儲存

第i個元素與第乙個元素的儲存位置滿足 loc ai loc a1 i 1 m include include include include 線性表的順序儲存 define max size 100 定義線性表最大長度 順序儲存的缺陷之一 typedef structdata typedef str...

資料結構之線性表順序儲存

零個或多個資料元素的有限序列。這裡需要強調幾個關鍵的地方 1 首先它是乙個序列。也就是說,元素之間是有順序的,若元素存在多個,則第乙個元素無前驅,最後乙個元素無後繼,其他每個元素都有乙個前驅和後繼。2 然後,線性表強調是有限的。如果用數學語言來進行定義。可如下 若將線性表標記為 a1,ai 1,ai...