線性表順序儲存演算法題

2021-10-06 03:22:27 字數 582 閱讀 3105

1、從線性表中刪除具有最小值的元素(假設唯一)並由函式返回被刪除元素的值,空出的位置由最後乙個元素填補,若順序表為空則顯示出錯資訊並儲存退出。

演算法思想:搜尋整個順序表,查詢最小值元素並記住其位置,搜尋結束後用最後乙個元素填補空出的原最小值元素的位置。

**如下:

bool del_min(sqlist &l, elemtype &value)

value = l.data[0];

int pos = 0; //假定0號元素的值最小

for (int i = 1; i < l.length; i++) //迴圈,尋找具有最小值的元素

}l.data[pos] = l.data[l.length - 1]; //空出的位置由最後乙個元素填補

l.length--;

return true; //此時,value即為最小值

}注意:本題也可以用函式返回值返回,兩者的區別是:函式返回值只能返回乙個值,而引數返回(引用傳參)可以返回多個值

線性表順序儲存

線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...

線性表順序儲存

時間複雜度效率 o 1 o logn o n o nlogn o n 2 o n 3 o 2 n o n o n n 線性表順序儲存 線性表 順序儲存 include include define maxsize 1024 typedef int elementtype typedef struct...

線性表順序儲存

我們來談一下線性表的順序儲存結構 圖示 1 存在唯一的開始結點 2 存在唯一的終端結點 3 除了終端結點和開始結點,其間的每乙個結點都有乙個直接前驅和乙個直接後繼 順序儲存 圖例 c 實現 include linklisthead.h void menu int main break case 2 ...