線性表 順序表

2021-07-05 22:59:09 字數 1598 閱讀 4411

1、線性表

線性表是最基本、最簡單、也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。

線性表——list,零個或多個資料元素的有限序列。

首先它是乙個序列。也就是說,元素之間是有順序的,若元素存在多個,則第乙個元素無前驅,最後乙個元素無後繼,其他每個元素都有且只有乙個前驅和後繼。

例子:假設la表示集合a,lb表示集合b,現在要得到乙個集合a使得a=aub

void unionl(sqlist *la,sqlist lb)

}

1.1 順序儲存結構

線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。

就是在記憶體中找了塊地方,通過佔位的形式,把一定記憶體空間給佔了,然後把相同資料型別的資料元素依次存放在這塊空地中。

既然資料元素的型別都相同,所以可以用c語言(其他語言也相同)的一維陣列來實現順序儲存結構,即把第乙個資料元素存到陣列下標為0的位置中,接著把線性表相鄰的元素儲存在陣列中相鄰的位置。

線性表的順序儲存結構的**如下:

#define maxsize 20

/* 儲存空間初始分配量 */

typedef

int elemtype; /* elemtype型別根據實際情況而定,這裡假設為int */

typedef

struct

sqlist;

這裡,我們發現描述順序儲存結構需要三個屬性:

儲存空間的起始位置——陣列data,它的儲存位置就是儲存空間的儲存位置。

線性表的最大儲存容量——陣列長度maxsize

線性表的當前長度length

注意:線性表的長度應該小於等於陣列的長度。

順序表**如下:

#include

#include

#include

using

namespace

std;

#define maxsize 20

typedef

int elemtype;

typedef

struct

sqlist;

sqlist init()

sqlist createlist(sqlist l, int n)

return l;

}void printlist(sqlist l)

cout

結果:

843

01process returned 0 (0x0) execution time : 0.223 s

press any key to continue.

線性表 順序表

線性結構的特點是 在非空的有限集合中,只有唯一的第乙個元素和唯一的最後乙個元素。第乙個元素沒有直接前驅元素,最後乙個沒有直接的後繼元素。其它元素都有唯一的前驅元素和唯一的後繼元素。要想將線性表在計算機上實現,必須把其邏輯結構轉化為計算機可識別的儲存結構。線性表的儲存結構主要有兩種 順序儲存結構和鏈式...

線性表 順序表

基本思想 用一段位址連續的儲存單元一次儲存線性表的資料元素 隨機訪問 注意事項 c 語言中陣列下標是從0開始的,而線性表中元素序號是從1開始的,也就是說 線性表中第i個元素儲存結構在陣列中下標為i 1的位置。首先是大體的函式宣告 const int maxsize 100 根據實際問題定義具體的大小...

線性表 順序表

線性表的adt list.h templateclass list 順序表的事先宣告 沒有定義成內嵌的順序表成員函式的實現 alist.h include stdafx.h include list.h define defaultlistsize 255 template class alist ...