二 1 2 順序表的插入與刪除

2021-09-01 18:25:59 字數 1167 閱讀 1775

一.順序表的插入元素到指定位置

1.思路分析

從指定位置,把往後所有元素(包括指定位置的元素)的位置都向後移動乙個位置,注意要從最後乙個元素開始移動,從後向前遍歷,依次移動元素,直到遍歷到指定位置元素,並把它移動,移動操作完成後,再把指定位置賦值為你要插入的元素

2.**實現

//順序表指定位置插入元素,引數:順序表指標,插入元素,插入位置 

void

insertelem

(sqlist *l1,elemtype elem,

int pos)

l1->elem[pos-1]

=elem;

//指定位置賦值你要插入的數

++(l1->length)

;//順序表元素數量加1

}

二.順序表的刪除指定位置元素

1.思路分析

從指定位置,把往後所有元素(不包括指定位置的元素)的位置都向前移動乙個位置,注意這裡是從指定位置向後遍歷,依次把元素往前挪,直到遍歷到末尾最後乙個元素,並把它移動,移動操作完成則刪除操作完成.

2.**實現

//順序表刪除指定位置的元素,引數:順序表指標,刪除位置 

void

deleteelem

(sqlist *l1,

int pos)

l1->length--

;//順序表元素數量減1

}//實際上順序表中的元素並沒有減少,只是順序表指定位置的元素被覆蓋了而已,而現順序表的末尾的

//後乙個位置(l1[l1->length])的元素就是原順序表末尾的元素,不過沒關係,下次儲存元素的時候會把

//它覆蓋了

三.總結

這裡順序表的插入與刪除操作大同小異,都是移動元素的位置,但是要注意:實際上移動元素的位置是通過元素賦值,改變順序表上原位置的元素的值來實現元素位置的改變,並不是順序表的單元的物理位置發生了的移動,而是單元儲存的元素的值發生了改變

舉個例子:上述順序表的移動操作就好比在班級裡換位置,本來你坐在第一排的位置,後來你被班主任安排移動到第二排.但是移動只是你人移動過去了,你人坐到了第二排的位置,而你原來所坐的椅子和桌子並沒有移動,原來的椅子和桌子還在第一排.

順序表的建立插入與刪除

順序表的建立插入與刪除 坑爹的資料結構課,在加上坑爹的資料結構老師,將來的資料結構之路想必不會順暢吧 好吧,閒話不多說。這該死的資料結構課上都沒怎麼聽,哎我以為我 苦學 一寒假的鍊錶,最開始的資料結構應該無壓力吧,沒想到第二週的作業就讓我懵逼了。我再一看老師給出的部分原始碼,要自己補充完整的。心裡有...

順序表 插入刪除

插入操作 在順序表l的第i 1 i l.length 1 個位置插入新元素e。時間複雜的為o n 刪除操作 刪除順序表l的第i 1 i l.length 個位置的元素,並返回true。時間複雜度為o n include include define initsize 10 using namespa...

順序表的查詢 刪除 插入

遇到的問題 malloc realloc的用法 realloc 型別 realloc 原來的記憶體位址,新的大小 型別 指標的問題 要深刻理解指標,指標也是乙個變數,在函式傳遞引數的過程中,作為引數來講,傳遞的也是值。這個值就是指標本身的內容,即指標指向的位址。而 不是傳的指標。所以指標作為函式形參...