順序表:
線性表的順序儲存結構是指將線性表的所有資料元素,按邏輯順序依次儲存在一組連續的記憶體單元中,用這種儲存形式儲存的線性表稱為順序表。(邏輯順序與物理存放的順序相同)
順序表的特點:
(1).邏輯關係相鄰的兩個資料元素在物理位置上也相鄰
(2).順序表中的的資料元素的資料型別相同,所占用的儲存空間也相同
順序表的優點:
訪問速度高效(因為是通過陣列,所以可以直接訪問下標來訪問)
順序表的缺點:
插入和刪除比較緩慢(當插入乙個數的時候需要挪動這個位置後面全部的數給這個數騰出位置,刪除類似)
不可以增加順序表的長度(當順序表建立成功之後,便不可以對陣列的長度進行改變)
順序表結構
typedef struct
seqlist;
順序表初始化
seqlist* seqlist_init() //順序表初始化
建立順序表
void seqlist_build(seqlist* list) //建立順序表
else}}
順序表插入元素
void seqlist_insert(seqlist* list,int index,int date) //往特定位置插入資料
list->elem[index] = date;
list->length++;
}
順序表合併
seqlist* seqlist_merge(seqlist* list1,seqlist* list2) //合併順序表
while(list3->length - list1->length < list2->length)
return list3;
}
列印順序表
void seqlist_print(seqlist* list) //列印順序表
釋放順序表記憶體
void seqlist_free(seqlist* list) //釋放順序表
測試**:
#include #include #include using namespace std;
const int init_size = 5;
typedef struct
seqlist;
seqlist* seqlist_init() //順序表初始化
void seqlist_build(seqlist* list) //建立順序表
else
}}void seqlist_insert(seqlist* list,int index,int date) //往特定位置插入資料
list->elem[index] = date;
list->length++;
}seqlist* seqlist_merge(seqlist* list1,seqlist* list2) //合併順序表
while(list3->length - list1->length < list2->length)
return list3;
}void seqlist_print(seqlist* list) //列印順序表
void seqlist_free(seqlist* list) //釋放順序表
int main()
測試結果
資料結構之順序表
首先是標頭檔案seqlist.h ifndef seqlist h define seqlist h include includeusing namespace std define elemtype int define seqlist default size 10 typedef struc...
資料結構之順序表
順序表的思想容易了解,但是 不容易掌握,我這裡根據老師所提供的 進行一下簡單的總結 這個 包含順序表的查詢,插入,刪除,建表,輸出資料 includeusing namespace std define ok 1 define error 0 define overflow 2 typedef in...
資料結構之順序表
順序表就是按照順序儲存方式儲存的線性表,該線性表的結點按照邏輯次序一次存放在計算機的一組連續的儲存單元中如下圖 由於順序表是一次存放的,只要知道了該順序表的首位址以及每個資料元素所占用的儲存長度,那麼我們就很容易計算出任何乙個資料元素 也就是資料繫結點 的位置。1 結點資料型別 public cla...