順序表的相關知識

2021-09-24 04:06:04 字數 1720 閱讀 4198

順序表的基本操作

(1)順序表的初始化

順序表的初始化就是把順序表 初始化為空的順序表,只需把順序表的長度length置為0即可;

void initlist(pseqlist l)

l->length = 0;

}

(2)求順序表的長度

順序表的長度就是就順序表中的元素的個數,由於在插入和刪除操作中都有對資料表的長度進行修改,所以求表長只需返回length的值即可;

int lengthlist(pseqlist l)

return l->length;

}

(3)按序號查詢

查詢順序表中第i個元素的值(按序號查詢),如果找到,將將該元素值賦給e。查詢第i個元素的值時,首先要判斷查詢的序號是否合法,如果合法,返回第i個元素對應的值。

int getdata(pseqlist l, int i)

//資料元素的序號從1開始,陣列下表從0開始,第i個元素對應的陣列下標為i-1;

return l->data[i - 1];

}

(4)插入操作

在資料表的第i個位置插入元素,在順序表的第i個位置插入元素e,首先將順序表第i個位置的元素依次向後移動乙個位置,然後將元素e插入第i個位置,移動元素要從後往前移動元素,即:先移動最後乙個元素,在移動倒數第二個元素,依次類推;插入元素之前要判斷插入的位置是否合法,順序表是否已滿,在插入元素之後要將表長l->length++;

int inslist(pseqlist l, int i, datatype e)

//判斷順序表是否已滿

else if (l->length >= listsize)

else

l->data[i - 1] = e;

l->length++; //資料表的長度加1

return 1;

}return 0;

}

(5) 刪除操作

刪除表中的第i個元素e,刪除資料表中的第i個元素,需要將表中第i個元素之後的元素依次向前移動一位,將前面的元素覆蓋掉。移動元素時要想將第i+1個元素移動到第i個位置,在將第i+2個元素移動i+1的位置,直到將最後乙個元素移動到它的前乙個位置,進行刪除操作之前要判斷順序表是否為空,刪除元素之後,將表長l->length--;

int dellist(pseqlist l, datatype i, datatype* e)

*e = l->data[i - 1];

for (k = i; k < l->length; k++)

l->length--;

return *e;

}

(6)按內容查詢

查詢資料元素e在表中的位置,可以從表頭開始一直遍歷表中元素,如果找到與要查詢元素e相等的元素,則返回元素在表中的位置,陣列下標從0開始,則元素在表中對應的位置序號值應為對應陣列下標加1,沒有找到則返回0;

int locate(pseqlist l, datatype e)

}return 0;

}

順序表的相關知識總結

線性表 線性表是n個具有相同特性的資料元素的有限序列.線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表,鍊錶,棧,佇列,字串.線性表在邏輯上是線性結構,也就是說是連續的一條直線.但在物理結構上並不是連續的,線性表在物理儲存時,通常以陣列和鏈式結構的形式儲存.順序表 概念及結構 順序表是用...

順序表的相關操作

include include include struct arr void init arr struct arr parr,int length bool insert arr struct arr parr,int pos,int pval bool delete arr struct ar...

順序表的相關操作

順序表 靜態順序表 使用定長陣列儲存。動態順序表 使用動態開闢的陣列儲存。每一種資料結構說到底都逃不過增刪改查,相對而言順序表的相關操作比較簡單,話不多說,咱們直接上 includeusing namespace std 順序表的定義 typedef struct seqlist seqlist 順...