欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

順序表的查找、插入、刪除、合并操作及其優(yōu)缺點(diǎn)

順序表的查找、插入、刪除、合并操作,用c++實(shí)現(xiàn)相關(guān)代碼:

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括高碑店網(wǎng)站建設(shè)、高碑店網(wǎng)站制作、高碑店網(wǎng)頁(yè)制作以及高碑店網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,高碑店網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到高碑店省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

#include<iostream>

using namespace std;

//定義線性表順序存儲(chǔ)結(jié)構(gòu)

#define MAXSIZE 100  //線性表最大長(zhǎng)度

typedef struct

{

//線性表占用數(shù)組空間

int elem[MAXSIZE];

//記錄線性表中最后一個(gè)元素在數(shù)組elem[]中的位置(下標(biāo)值),空表置為-1

int last;

}SeqList;

//順序表的按內(nèi)容查找運(yùn)算

//在順序表L中查找與e相等的元素,若L.elem[i]=e,則找到該元素,并返回i+1,若找不到,則返回-1

int  Locate(SeqList L, int e)

{

//i為掃描計(jì)數(shù)器,初值為0,即從第一個(gè)元素開始比較

int i = 0;

//順序掃描表,直到找到值為e的元素或掃描到表尾而沒有找到

while ((i<=L.last)&&(L.elem[i]!=e))

{

i++;

}

if (i <= L.last)

{

return (i + 1);//若找到值為e的元素,則返回其序號(hào)

}

else

{

return -1;//若沒找到,則返回空序號(hào)

}

}

//順序表的插入運(yùn)算

#define OK 1

#define ERROR 0

//在順序表L中第i個(gè)數(shù)據(jù)元素之前插入一個(gè)元素e,n個(gè)元素有n+1個(gè)插入位置,1<=i<=L->last + 2

int InsList(SeqList *L, int i, int e)

{

int k = 0;

if ((i<1) || (i>L->last + 2))//判斷插入位置是否合法

{

cout << "插入位置i值不合法!" << endl;

return (ERROR);

}

if (L->last >= MAXSIZE - 1)

{

cout << "表已滿,無法插入!" << endl;

return (ERROR);

}

for (k = L->last; k >= i - 1; k--)//為插入元素而移動(dòng)位置

{

L->elem[k + 1] = L->elem[k];

}

L->elem[i - 1] = e;

L->last++;

return (OK);

}

//順序表的刪除運(yùn)算

//在順序表L中刪除第i個(gè)數(shù)據(jù)元素,并用指針參數(shù)e返回其值,1<=i<=L->last + 1

int DelList(SeqList *L, int i, int *e)

{

int k = 0;

if ((i<1) || (i>L->last + 1))//判斷刪除位置是否合法

{

cout << "刪除位置不合法!" << endl;

return (ERROR);

}

*e = L->elem[i - 1];//將刪除的元素存放到e所指向的變量中

for (k = i; k <= L->last; k++)//將后面的元素依次前移

{

L->elem[k - 1] = L->elem[k];

}

L->last--;

return (OK);

}

int main()

{

        //

system("pause");

return 0;

}

例:有兩個(gè)順序表LA,LB,其元素均為非遞減有序排列,編寫算法將它們合并成一個(gè)順序表LC,要求LC也是非遞減有序排列。

解:算法如下:

//線性表的合并運(yùn)算

void MergeList(SeqList *LA, SeqList *LB, SeqList *LC)

{

int i = 0, j = 0, k = 0;

while ((i <= LA->last) && (j <= LB->last))

{

if (LA->elem[i] <= LB->elem[j])

{

LC->elem[k] = LA->elem[i];

i++;

k++;

}

else

{

LC->elem[k] = LB->elem[j];

j++;

k++;

}

}

while (i <= LA->last)//當(dāng)表LA有剩余元素時(shí),則將表LA的剩余元素賦給表LC

{

LC->elem[k] = LA->elem[i];

i++;

k++;

}

while (j <= LB->last)//當(dāng)表LB有剩余元素時(shí),則將表LB的剩余元素賦給表LC

{

LC->elem[k] = LB->elem[j];

j++;

k++;

}

LC->last = LA->last + LB->last + 1;

}

順序表的優(yōu)點(diǎn):1.無須為表示結(jié)點(diǎn)間的邏輯關(guān)系而增加額外的存儲(chǔ)空間; 

              2.可方便隨機(jī)存取表中任一元素。

缺點(diǎn):1.插入或刪除運(yùn)算不方便;

      2.由于順序表要占用連續(xù)的存儲(chǔ)空間,存儲(chǔ)分配只能預(yù)先進(jìn)行靜態(tài)分配,當(dāng)表長(zhǎng)變化較大時(shí),難以確定合適的存儲(chǔ)規(guī)模。

當(dāng)前題目:順序表的查找、插入、刪除、合并操作及其優(yōu)缺點(diǎn)
網(wǎng)頁(yè)路徑:http://chinadenli.net/article26/goiicg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器Google做網(wǎng)站虛擬主機(jī)定制開發(fā)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管