資料結構之順序表的實現

2021-08-27 18:43:42 字數 1078 閱讀 4216

線性表的實現分順序儲存結構和鏈式儲存結構。

順序表屬於線性表的一種,是用一組位址連續的儲存單元依次來實現對元素的儲存。

但是,順序結構最大的缺點就是在進行插入和刪除操作的時候,如果插入位置不理想,那麼需要移動大量的元素。可以發現在順序儲存結構中,他們相鄰的元素的儲存位置也是相鄰的,在申請記憶體的的時候,是一次性申請一塊連續的記憶體,中間是沒有空隙的,這樣也就沒辦法進行快速的插入,如果進行刪除操作,就需要進行位置的填充。

順序結構最大的好處就是可以快速的訪問表中的任一位置的元素。

#include #include #define ok 1

#define error 0

#define overflow -2

#define listincrement 10

typedef int status; //status 是函式返回值型別,其值是函式結果狀態**。

typedef int elemtype; //elemtype 為可定義的資料型別,此設為int型別

#define list_init_size 100 //順序表可能達到的最大長度

typedef struct

sqlist;

//初始化

status initlist(sqlist &l)

//插入

status insertelement(sqlist &l , int i , elemtype e)

elemtype *p = &(l.elem[i-1]);

elemtype *q = &(l.elem[l.length-1]);

for( ; q>=p ; q--)

*p = e;

l.length += 1;

return ok;

}//在順序表l中刪除第i個元素,並用e返回其值

status deleteelement(sqlist &l , int i , elemtype &e)

l.elem[i-1] = e;

return ok;

}int main()

} return 0;

}

資料結構之順序表的實現

本文為對順序表的一些基本操作 1.建立鍊錶 typedef struct sqlistsqlist 2.實現對鍊錶的初始化 int init sqlist list 接下來便是對順序表的一些基礎能進行實現 注意 插入和刪除的時候要注意是否越界 插入 插入元素時,插入位置後南面的元素要往後移動乙個元素...

資料結構之順序表的實現

俗話說,好記性不如乙個爛筆頭,在過了若干天之後我果然忘了順序表的實現 以此寫一篇文章,防止自己忘記也幫助剛入門的小夥伴。順序表也就是採用一片連續的記憶體空間來儲存相應的資料,既然是連續也就造成了空間必然有限,但帶來的優點也有很多,比如操作很快,理解容易 既然時連續的記憶體空間,採取陣列的形式是最為方...

資料結構之線性順序表實現

線性表是最常用且最簡單的一種資料結構。簡言之,乙個線性表是n個資料元素的有限序列。線性結構的特點是 在資料元素的非空有限集中,1 存在唯一的乙個被稱作 第乙個 的資料元素 2 存在唯一的乙個被稱作 最後乙個 的資料元素。3 除第乙個之外,集合中的每個資料元素均只有乙個前驅 4 除最後乙個外,集合中每...