順序表的插入操作-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站制作、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元陜州做網(wǎng)站,已為上家服務(wù),為陜州各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

什么是順序表,它的定義和特點有哪些。

如何實現(xiàn)順序表的插入操作。

定義一個順序表

定義insert函數(shù)

???? 判斷順序表是否已滿

?????插入位置的有效性

?????開始插入操作

主函數(shù)實現(xiàn)功能舉例:

?????為SequenceList L賦值

?????打印順序表

?????調(diào)用insert函數(shù)傳參實現(xiàn)插入操作

?????打印插入后的順序表

完整代碼如下:

補充注意事項

錯誤寫法:



什么是順序表,它的定義和特點有哪些。

順序表是一種線性數(shù)據(jù)結(jié)構(gòu),它由一組有序的數(shù)據(jù)元素組成。順序表中的數(shù)據(jù)元素是按照一定順序存儲的,并且可以通過數(shù)據(jù)元素的位置來訪問它們。

順序表有以下幾個特點:

  1. 順序表的查找效率高,可以通過數(shù)組下標直接訪問順序表中的任意一個數(shù)據(jù)元素。

  2. 順序表的插入和刪除效率較低,因為這些操作需要移動大量的數(shù)據(jù)元素。

  3. 順序表的空間利用率較低,因為順序表的大小是固定的,如果空間不夠用,就需要重新分配一塊新的內(nèi)存空間,將數(shù)據(jù)復(fù)制過去,這樣就會浪費一些空間。

  4. 順序表的內(nèi)存空間是連續(xù)的,這樣可以提高緩存命中率,從而提高訪問效率。

總之,順序表是一種簡單且常用的線性數(shù)據(jù)結(jié)構(gòu),它的查找效率高,但是插入和刪除效率較低,空間利用率較低。

如何實現(xiàn)順序表的插入操作。 ????????定義一個順序表
typedef struct {
    int data[MAX_SIZE];
    int length;
}SequenceList;

上述代碼中的typedef聲明了一個類型別名SequenceList,用來表示一個結(jié)構(gòu)體類型。這個結(jié)構(gòu)體類型包含兩個成員:一個整型數(shù)組data和一個整型變量length。

這樣使用typedef聲明后,就可以像使用系統(tǒng)定義的類型一樣使用SequenceList類型,而不用再使用struct關(guān)鍵字。例如,可以直接聲明一個SequenceList類型的變量,使用typedef聲明類型別名的主要目的是為了使代碼更加簡潔,方便維護。

定義insert函數(shù) ??????????????? 判斷順序表是否已滿
if (L->length == MAX_SIZE){
        printf("Error: the SequenceList if full.\n");
        return;
    }
?????插入位置的有效性
if(index< 0 || index >L->length){
            printf("Error index");
            return;
    }
?????開始插入操作
for (int i = L->length - 1; i >= index; i--){

         L->data[i+1] = L->data[i];
        }
        L->data[index] = element;
        L->length++;

將順序表中插入位置及之后的數(shù)據(jù)元素向后移動一個位置,從而騰出插入位置。然后,將新的數(shù)據(jù)元素插入到插入位置,并將順序表的長度加 1。這樣,就完成了順序表的插入操作。當i == index時,需要將index下標位置的元素向后移一位,這就是要寫等于的原因.

主函數(shù)實現(xiàn)功能舉例: ????????????????為SequenceList L賦值
SequenceList L = {{1,2,3,4,5,6},6};

有六個元素{1,2,3,4,5,6},length=6

?????打印順序表
printf("Original sequence list length: %d and element: ",L.length);
    for (int i = 0; i< L.length; i++){
        printf("%d ", L.data[i]);
    }
?????調(diào)用insert函數(shù)傳參實現(xiàn)插入操作
insert(&L,3,7);

在下表為3的位置上插入元素7

?????打印插入后的順序表
printf("After insertion sequence list length: %d and element: ",L.length);
    
    for (int i = 0; i
完整代碼如下:
#include#include#define MAX_SIZE 100
typedef struct {
    int data[MAX_SIZE];
    int length;
}SequenceList;
void insert(SequenceList *L,int index,int element){
    if (L->length == MAX_SIZE){
        printf("Error: the SequenceList if full.\n");
        return;
    }
    if(index< 0 || index >L->length){
            printf("Error index");
            return;
    }
        for (int i = L->length - 1; i >= index; i--){

         L->data[i+1] = L->data[i];
        }
        L->data[index] = element;
        L->length++;
}
int main(){
    SequenceList L = {{1,2,3,4,5,6},6};
    printf("Original sequence list length: %d and element: ",L.length);
    for (int i = 0; i< L.length; i++){
        printf("%d ", L.data[i]);
    }
    printf("\n");

    insert(&L,3,7);

    printf("After insertion sequence list length: %d and element: ",L.length);
    
    for (int i = 0; i
補充注意事項

在主函數(shù)中,L是一個結(jié)構(gòu)體變量,不是指針。在訪問它的成員時不能使用->運算符,會導(dǎo)致編譯器報錯。

錯誤寫法:
int main(){
    sqlist L = {{1,2,3,4,5,6},6};
    printf("before insert length = %d,element:",L->length);
    for (int i = 0; i< L->length; i++)
    {
        printf("%d ",L->data[i]);
    }
    printf("\n");
    insert(&L,3,5);

    printf("after insert length = %d,element:",L->length);
    for (int i = 0; i< L->length; i++)
    {
        printf("%d ",L->data[i]);
    }
    printf("\n");
    
    system("pause");
    return 0;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:順序表的插入操作-創(chuàng)新互聯(lián)
當前URL:http://bm7419.com/article34/hchpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站微信公眾號、品牌網(wǎng)站制作、外貿(mào)建站移動網(wǎng)站建設(shè)、標簽優(yōu)化

廣告

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