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