基礎練習 順序表操作集(C語言)

2021-10-16 21:15:22 字數 2156 閱讀 5915

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...