順序表基本操作

2021-08-07 20:12:59 字數 2554 閱讀 5044

本題要求實現順序表元素的增、刪、查詢以及順序表輸出共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

answer

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

int i;

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

*(l.elem + pos - 1) = e;

l.length++;

return ok;

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

int listlocate_sq(sqlist l, elemtype e)

return error;

}void listprint_sq(sqlist l)

順序表基本操作

先建個seqlist.h 如下 include include define maxn 100 定義線性表的長度 typedef struct seqlisttype void seqlistinit seqlisttype sl 初始化順序表 int seqlistlength seqlistty...

順序表 基本操作

include include define initsize 100 順序表儲存空間的初始分配量 typedef int elemtype 在實際問題中,根據需要定義所需的資料型別 typedef struct sqlist void initlist sqlist l 初始化操作 建立乙個空的順...

順序表基本操作

include include include definemaxn 50 定個長度,方便修改 define elemtype int 巨集定義之後便於修改型別,不用乙個乙個去修改 structnode voidlist creat struct node l 建立線性表 voidlist empt...