線性表(順序表) 基本操作 實現

2022-09-07 10:24:09 字數 2072 閱讀 8241

定義:資料型別相同的n個元素構成的有限序列

#所有呈遞增關係的整數不屬於線性表(無限)

特點:線性表是線性結構,線性結構的基本特點是:除第乙個元素無直接前驅,最後乙個元素無直接後繼外,其他每個資料元素都有乙個前驅和後繼

位序:線性表中 第i個 元素,它的位序是從 1 開始的(區別陣列下標從 0 開始)

#用陣列實現線性表時注意審題

常用型別定義:

關於 & :如果呼叫函式時,需要將函式中引數修改的結果帶回來,則使用「&」,如:線性表的初始化,銷毀,插入,刪除等。

定義:按順序儲存的線性表

基本操作:

靜態分配——使用陣列

#definde maxsize 10;

//陣列大小

typedef

struct

sqlist;

//型別定義(別名)

//初始化乙個順序表

void

initlist

(sqlist &l)

intmain

(int argc,

char

** ar**)

#設定資料元素為預設值0雖然可以省略,但是如果沒有設定資料元素為預設值,記憶體中會有遺留的「髒資料」。

動態分配——使用指標

#definde initsize 10;

//陣列大小

typedef

struct

sqlist;

//型別定義(別名)

//初始化乙個順序表

void

initlist

(sqlist &l)

//增加動態陣列的長度

void

increasesize

(sqlist &l,

int len)

#動態分配記憶體擴容雖然要方便一點,但是由於要將原記憶體的資料複製,所以時間開銷會很大。

特點:​ 宣告和初始化:

#definde maxsize 10;

//陣列大小

typedef

struct

sqlist;

//型別定義(別名)

//用 & 將e的即帶回來

靜態分配

elemtype getelem

(sqlist l,

int i)

//elemtype為你所需的返回值型別

動態分配

和訪問陣列的方法一樣,同上。

//在順序表l中查詢第乙個元素值等於e的元素,並返回其位序 

intlocateelem

(sqlist l,

int e)

#如果是結果型別的資料元素進行比較是需要依次對比各個分量來判斷結構體是否相

線性表的基本操作(順序表)

實驗內容 建立順序表,實現求表的長度 遍歷表 查詢 插入和刪除元素 求前驅 求後繼等操作 實驗基本要求 進一步熟悉 turbo c 或者vc 環境 掌握線性表結構的基本操作 include using namespace std include include define maxsize 50 t...

線性表之順序表基本操作

sqheader.h ifndef sqheader h included define sqheader h included 順序表的儲存結構 define maxsize 50 typedef char elemtype typedef struct sqlist endif sqheader...

線性表 順序表的基本操作

includeusing namespace std typedef long long ll const ll n 1000000 5 define maxsize 50typedef struct sqlist 基礎操作函式 初始化順序表函式,構造乙個空的順序表 void initlist sq...