習題3 3 線性表元素的區間刪除 20分

2022-08-09 12:51:22 字數 1379 閱讀 1807

給定乙個順序儲存的線性表,請設計乙個函式刪除所有值大於min而且小於max的元素。刪除後表中剩餘元素保持順序儲存,並且相對位置不能改變。

list delete( list l, elementtype mind, elementtype maxd );

其中list結構定義如下:

typedef int position;

typedef struct lnode *list;

struct lnode ;

l是使用者傳入的乙個線性表,其中elementtype元素可以通過》、=、《進行比較;mindmaxd分別為待刪除元素的值域的下、上界。函式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...