2. 題意理解
3. 完整ac**
順序表操作集
線性表的基礎練習題,需要依次實現:順序表的建立、插入、查詢、刪除子函式
題目已指定資料結構,順序表的元素值儲存在結構體的陣列中 data[maxsize],結構體中的last變數指定最後乙個元素的位置
#define maxsize 5
typedef
int elementtype;
typedef
int position;
typedef
struct lnode *list;
struct lnode
;
需要注意題目隱含的資訊:順序表的插入規則,順序表的有效插入位置是[0, l->last+1](含端點),想清楚這一點基本就可以ac
建立子函式:將l->last初值設定為 -1,以便準確跟蹤順序表中最後乙個元素的位置,比如:插入第乙個元素後,l->last的值更新為0,與元素值對應的陣列下標一致
list makeempty()
插入子函式:依據題意,順序表的陣列下標最大值為maxsize-1 ; 由於有效插入位置是[0, l->last+1](含端點),所以無效位置就是:小於0 或 大於 l->last+1;對於順序表,當插入位置為p時,位置p及其後的元素需要向後移動一位
bool
insert
( list l, elementtype x, position p )
if( p<
0|| p>
(l->last+1)
)for
(int i=l-
>last;i>=p;i--
)//core
l->data[i+1]
=l->data[i];
l->data[p]
=x; l-
>last++
;return
true
;}
查詢子函式:找到後,直接return即可,這樣可以精簡一些**
position find
( list l, elementtype x )
return error;
}
刪除子函式:對於刪除操作,非法位置就是 小於0 或 大於 l->last ; 執行刪除後,刪除位置p之後的元素需要回移一位 l->data[i]=l->data[i+1]; 同時別忘記更新變數last
bool
delete
( list l, position p )
for(
int i=p;i>last;i++
) l-
>data[i]
=l->data[i+1]
; l-
>last--
;return
true
;}
list makeempty()
bool
insert
( list l, elementtype x, position p )
if( p<
0|| p>
(l->last+1)
)for
(int i=l-
>last;i>=p;i--
)//core
l->data[i+1]
=l->data[i];
l->data[p]
=x; l-
>last++
;return
true;}
position find
( list l, elementtype x )
return error;
}bool
delete
( list l, position p )
for(
int i=p;i>last;i++
) l-
>data[i]
=l->data[i+1]
; l-
>last--
;return
true
;}
資料結構 順序表操作集(C語言)
本題要求實現順序表的操作集。list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,position p 其中list結構定義如下...
順序表操作集
6 2 順序表操作集 20 分 本題要求實現順序表的操作集。list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,positio...
順序表操作集
本題要求實現順序表的操作集。函式介面定義 list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,position p 其中lis...