給定乙個順序儲存的線性表,請設計乙個函式刪除所有值大於min而且小於max的元素。刪除後表中剩餘元素保持順序儲存,並且相對位置不能改變。
list delete( list l, elementtype mind, elementtype maxd );
其中list
結構定義如下:
typedef int position;
typedef struct lnode *list;
struct lnode ;
l
是使用者傳入的乙個線性表,其中elementtype
元素可以通過》、=、《進行比較;mind
和maxd
分別為待刪除元素的值域的下、上界。函式delete
應將data
中所有值大於mind
而且小於maxd
的元素刪除,同時保證表中剩餘元素保持順序儲存,並且相對位置不變,最後返回刪除後的表。
#include #define maxsize 20
typedef int elementtype;
typedef int position;
typedef struct lnode *list;
struct lnode ;
list readinput(); /* 裁判實現,細節不表。元素從下標0開始儲存 */
void printlist( list l ); /* 裁判實現,細節不表 */
list delete( list l, elementtype mind, elementtype maxd );
int main()
/* 你的**將被嵌在這裡 */
10
4 -8 2 12 1 5 9 3 3 10
0 4
4 -8 12 5 9 10
解題思路:遍歷整個線性表,並記錄和儲存小於等於mind和大於等於maxd的元素
設定2個標識i,j ,其中i不斷的右移,j指向左端,若l->data[i]符合條件,則將l->data[j]=l->data[j];j++
最後將 l->last = j-1;
list delete( list l, elementtype mind, elementtype maxd )}l->last = j-1
;
return
l;
刪除區間內的元素(線性表)
time limit 1 sec memory limit 2 mb submit 95 solved 29 submit status web board 若乙個線性表l採用順序儲存結構,其中元素都為整數。設計乙個演算法,刪除元素值在 x,y 之間的所有元素,要求演算法的時間複雜度為o n 空間複...
6 2 線性表元素的區間刪除
給定乙個順序儲存的線性表,請設計乙個函式刪除所有值大於min而且小於max的元素。刪除後表中剩餘元素保持順序儲存,並且相對位置不能改變。函式介面定義 list delete list l,elementtype mind,elementtype maxd 其中list結構定義如下 typedef i...
6 2 線性表元素的區間刪除
給定乙個順序儲存的線性表,請設計乙個函式刪除所有值大於min而且小於max的元素。刪除後表中剩餘元素保持順序儲存,並且相對位置不能改變。函式介面定義 list delete list l,elementtype mind,elementtype maxd 其中list結構定義如下 typedef i...