6 1 順序表基本操作(10 分)

2021-08-18 19:49:02 字數 2614 閱讀 2095

6-1 順序表基本操作(10 分)

本題要求實現順序表元素的增、刪、查詢以及順序表輸出共4個基本操作函式。l是乙個順序表,函式status listinsert_sq(sqlist &l, int pos, elemtype e)是在順序表的pos位置插入乙個元素e(pos應該從1開始),函式status listdelete_sq(sqlist &l, int pos, elemtype &e)是刪除順序表的pos位置的元素並用引用型引數e帶回(pos應該從1開始),函式int listlocate_sq(sqlist l, elemtype e)是查詢元素e在順序表的位次並返回(如有多個取第乙個位置,返回的是位次,從1開始,不存在則返回0),函式void listprint_sq(sqlist l)是輸出順序表元素。實現時需考慮表滿擴容的問題。

函式介面定義:

status listinsert_sq(sqlist &l, int pos, elemtype e);

status listdelete_sq(sqlist &l, int pos, elemtype &e);

int listlocate_sq(sqlist l, elemtype e);

void listprint_sq(sqlist l);

其中 l 是順序表。 pos 是位置; e 代表元素。當插入與刪除操作中的pos引數非法時,函式返回error,否則返回ok。

裁判測試程式樣例:

//庫函式標頭檔案包含

#include#include#include//函式狀態碼定義

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef int status;

//順序表的儲存結構定義

#define list_init_size 100

#define listincrement 10

typedef int elemtype; //假設線性表中的元素均為整型

typedef structsqlist; //順序表型別定義

status listinsert_sq(sqlist &l, int pos, elemtype e);

status listdelete_sq(sqlist &l, int pos, elemtype &e);

int listlocate_sq(sqlist l, elemtype e);

void listprint_sq(sqlist l);

//結構初始化與銷毀操作

status initlist_sq(sqlist &l)

int main()

for(int i = 1; i <= 10; ++ i)

listinsert_sq(l, i, i);

int operationnumber; //操作次數

scanf("%d", &operationnumber);

while(operationnumber != 0) else if(operationtype == 2) else if(operationtype == 3) else if(operationtype == 4)

operationnumber--;

}return 0;

}/* 請在這裡填寫答案 */

輸入格式:第一行輸入乙個整數operationnumber,表示運算元,接下來operationnumber行,每行表示乙個操作資訊(含「操作種類編號 操作內容」)。 編號為1表示插入操作,後面兩個引數表示插入的位置和插入的元素值 編號為2表示刪除操作,後面乙個引數表示刪除的位置 編號為3表示查詢操作,後面乙個引數表示查詢的值 編號為4表示順序表輸出操作 

輸出格式:對於操作2,輸出刪除的元素的值 對於操作3,輸出該元素的位置,如果不存在該元素,輸出「not found」; 對於操作4,順序輸出整個順序表的元素,兩個元素之間用空格隔開,最後乙個元素後面沒有空格。

輸入樣例:

4

1 1 11

2 23 3

4

輸出樣例:
1

311 2 3 4 5 6 7 8 9 10status listinsert_sq(sqlist &l, int pos, elemtype e)

for(int i=l.length;i>=pos;i--)

l.elem[pos-1]=e;

++l.length;

return ok;

}status listdelete_sq(sqlist &l, int pos, elemtype &e)

--l.length;

return ok;

}int listlocate_sq(sqlist l, elemtype e)

}return 0;

}void listprint_sq(sqlist l)

}

6 1 順序表的查詢操作 10分

本題要求實現乙個函式,要求從順序表中查詢指定元素,並返回第乙個查詢成功的元素在表中的位置序號,若查詢失敗,則返回0 函式介面定義 int locateelem sqlist l,elemtype e 其中sqlist結構定義如下 typedef structsqlist 裁判測試程式樣例 inclu...

6 1 順序表操作集 20 分

6 1 順序表操作集 20 分 本題要求實現順序表的操作集。函式介面定義 list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,...

6 1 順序表操作集

list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,position p 其中list 結構定義如下 typedef int ...