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