學習 線性表的順序儲存 總結一

2021-07-05 05:31:02 字數 1369 閱讀 3019

線性表是最簡單的一種資料結構了,也是最常用的一種。線性表的邏輯結構簡單,便於實現和操作。線性表有以下兩個特點:

1. 它首先是個序列,元素之前是有順序的。

2. 資料元素之間的關係是一對一的,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。

線性表的元素個數n定義為線性表的長度。

#define maxsize 20

typedef

int elemtype

typedef

struct

sqlist;

由以上定義,可以發現線性表的順序儲存有下面三個屬性:

1. 儲存空間的起始位置—陣列data

2. 線性表順序儲存的最大儲存容量

3. 線性表順序儲存的當前長度length

下面把線性表的順序儲存記為順序表。並學習順序表的一些基本操作:順序表的初始化、建立、查詢、插入、刪除等。

// 順序表的初始化

sqlist init()

// 順序表的建立

sqlist create(sqlist l)

return l;

}

// 順序表的查詢

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

*e = l.data[i - 1];

return ok;

}

// 順序表的插入

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

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

l->length++;

return ok;

}

// 順序表的刪除

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

}l->length--;

return ok;

}

順序表的插入或刪除操作,時間複雜度都是o(n). 而存和讀資料操作,不管是哪個位置,時間複雜度為o(1).

下面總結下順序表的優缺點:

好吧,從優點開始說。當我們在使用線性表的時候,我們不需要為表中元素之間的邏輯關係而增加額外的儲存空間,而且可以快速的訪問表中任意位置的元素。接下來談談缺點。如我們所見,如果我們要插入或者刪除的元素是在第乙個位置,那麼無疑的,我們需要移動大量的元素來完成這樣的操作,而且限於線性表長度必須小於陣列長度,如果我們需要插入大量資料,那麼很難保證空間是否充足,而如果我們要刪除大量資料的時候,無疑又會造成空間的浪費。

《資料結構》

線性表順序儲存總結

1.但凡函式含 元素位置i,一定要考慮i是否在正確的範圍內 需要考慮的只有三種情況 插入某個元素 刪除某個元素 返回指定位置的元素數值 2.銷毀和清空鍊錶無需返回值 3.但凡需要判斷是否成功 都需要用status作為返回值型別 4.需要修改線性表或主函式的的某個資料時,才用址傳遞,其餘的都用值傳遞 ...

線性表的順序儲存 線性表的順序儲存結構

1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...

線性表順序儲存

線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...