說(shuō)明:
順序表的插入操作:insertlist(sqlist &l,int i,int k)//插入函數(shù),形參為引用順序表,插入位置,插入值。
思路:
進(jìn)行初始化操作后,進(jìn)行初試賦值。隨后進(jìn)行插入操作。
插入操作:
需要先給i位置往后的數(shù)據(jù)后移,騰出i-1的位置,后移完成后,給i-1處賦值為k。
插入操作的時(shí)間復(fù)雜度:
最好情況:直接插入表尾,O(1);一次成功
最壞情況:插入第一個(gè)位置,那么原本n個(gè)元素都需要后移,為O(n? )
刪除操作:
? 直接后面的元素,補(bǔ)上前一位即可
代碼如下:
#include#include#define initsize 10
typedef struct //定義一個(gè)動(dòng)態(tài)順序表的結(jié)構(gòu)體,并起別名為sqlist
{
int *data; //因?yàn)槭莿?dòng)態(tài)數(shù)組,所以先定一個(gè)指針,表示數(shù)組,后面malloc動(dòng)態(tài)分配即可
int max;
int length;
}sqlist;
bool insertlist(sqlist &l,int i,int k)
{
if(i<1||i>l.length+1)//元素必須挨著,若果插入位置超過(guò)當(dāng)前長(zhǎng)度,則無(wú)效
return false;
if(l.length>=l.max+1)//如果當(dāng)前長(zhǎng)度超過(guò)大容量,也無(wú)效
return false;
int p;
for(p=l.length;p>=i;p--)//從末尾,依次賦值位移
l.data[p]=l.data[p-1];
l.data[i-1]=k;
l.length++;
}
bool deletelist(sqlist &l,int i,int k)
{
if(i<1||i>l.length)
return false;
k=l.data[i-1];
int m;
for(m=i;m
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧