第三週專案2 建設「順序表」演算法庫

2021-08-08 13:48:26 字數 4665 閱讀 3894

[cpp]view plain

copy /*

*檔名稱:shiyan.cpp

*作    者:張俊傑

*完成日期:2023年9月21日

*版本號:v1.0

**問題描述:建立乙個線性表並且初始化,查詢,插入,刪除,輸出元素

*輸入描述:

*程式輸出:見截圖*/

[cpp]view plain

copy

檔案#ifndef list_h_included

#define list_h_included

#define maxsize 50

typedef

intelemtype;  

typedef

struct

sqlist;  

void

createlist(sqlist *&l, elemtype a, 

intn);

//用陣列建立線性表

void

initlist(sqlist *&l);

//初始化線性表initlist(l)

void

destroylist(sqlist *&l);

//銷毀線性表destroylist(l)

bool

listempty(sqlist *l);

//判定是否為空表listempty(l)

intlistlength(sqlist *l);

//求線性表的長度listlength(l)

void

displist(sqlist *l);

//輸出線性表displist(l)

bool

getelem(sqlist *l,

inti,elemtype &e);

//求某個資料元素值getelem(l,i,e)

intlocateelem(sqlist *l, elemtype e);

//按元素值查詢locateelem(l,e)

bool

listinsert(sqlist *&l,

inti,elemtype e);

//插入資料元素listinsert(l,i,e)

intdeletelist(sqlist *&l,

intn);

//刪除資料元素listdelete(l,n)#endif // list_h_included

#endif

[cpp]view plain

copy

#include 

#include 

#include "list.h"

//用陣列建立線性表

void

createlist(sqlist *&l, elemtype a, 

intn)  

//初始化線性表initlist(l)

void

initlist(sqlist *&l)   

//引用型指標

//銷毀線性表destroylist(l)

void

destroylist(sqlist *&l)  

//判定是否為空表listempty(l)

bool

listempty(sqlist *l)  

//求線性表的長度listlength(l)

intlistlength(sqlist *l)  

//輸出線性表displist(l)

void

displist(sqlist *l)  

//求某個資料元素值getelem(l,i,e)

bool

getelem(sqlist *l,

inti,elemtype &e)  

//按元素值查詢locateelem(l,e)

intlocateelem(sqlist *l, elemtype e)  

//插入資料元素listinsert(l,i,e)

bool

listinsert(sqlist *&l,

inti,elemtype e)  

//刪除資料元素listdelete(l,i,)

intdeletelist(sqlist *&l,

intn)  

l->length--;  

return

0;  

}  

[cpp]view plain

copy

#include 

#include 

#include 

#include "list.h"

using

namespace

std;  

intmain()  

;  elemtype a;  

intloc;  

createlist(sq, x, 6);  

displist(sq);  

cout<

printf("線性表長度為:%d\n"

, listlength(sq));  

//測試求長度

cout<

if(getelem(sq, 3, a))  

//測試在範圍內的情形

printf("第3個元素值為:%d\n"

, a);  

else

printf("第3個元素超出範圍!\n"

);  

cout<

if(getelem(sq, 15, a))  

//測試不在範圍內的情形

printf("第15個元素值為:%d\n"

, a);  

else

printf("第15個元素超出範圍!\n"

);  

cout<

if((loc=locateelem(sq, 8))>0)  

//測試能找到的情形

printf("值為8的元素是第 %d 個元素\n"

, loc);  

else

printf("沒有值為8的元素!\n"

);  

cout<

if((loc=locateelem(sq, 17))>0)  

//測試不能找到的情形

printf("值為17的元素是第 %d 個元素\n"

, loc);  

else

printf("沒有值為17的元素!\n"

);  

cout<

printf("插入值為10的元素!\n"

);  

listinsert(sq ,7,10);  

displist(sq);  

cout<

printf("刪除第二個元素!\n"

);  

deletelist(sq,2);  

displist(sq);  

printf("銷毀線性表\n"

);  

destroylist(sq);  

cout<

return

0;  

}  

執行結果

//用陣列建立線性表

void

createlist(sqlist *&l, elemtype a, 

intn)  

//初始化線性表initlist(l)

void

initlist(sqlist *&l)   

//引用型指標

//銷毀線性表destroylist(l)

void

destroylist(sqlist *&l)  

//判定是否為空表listempty(l)

bool

listempty(sqlist *l)  

//求線性表的長度listlength(l)

intlistlength(sqlist *l)  

//輸出線性表displist(l)

void

displist(sqlist *l)  

//求某個資料元素值getelem(l,i,e)

bool

getelem(sqlist *l,

inti,elemtype &e)  

//按元素值查詢locateelem(l,e)

intlocateelem(sqlist *l, elemtype e)  

//插入資料元素listinsert(l,i,e)

bool

listinsert(sqlist *&l,

inti,elemtype e)  

//刪除資料元素listdelete(l,i,)

intdeletelist(sqlist *&l,

intn)  

l->length--;  

return

0;  

}  

第三週 專案2 建設順序表演算法庫

檔名稱 cpp.cpp 作者 王超 完成日期 2015.9.18 問題描述 建設順序表演算法庫 include include define maxsize 50 typedef int elemtype typedef struct sqlist void createlist sqlist l,...

第三週專案2 建設「順序表」演算法庫

問題及 檔名稱 專案2.cbp 作 者 完成日期 2015年9月16日 版 本 號 v1.0 問題描述 請採用程式的多檔案組織形式,在專案1的基礎上,建立 如上的兩個檔案,另外再建立乙個原始檔,編制main函 數,完成相關的測試工作。輸入描述 無 程式輸出 依據各個函式而定 list.h檔案 ifn...

第三週 專案2 建設「順序表」演算法庫

01.04.檔名稱 list.cpp 05.作 者 蘇凱祺 06.完成日期 2014年10月9號 07.版 本 號 v1.0 08.問題描述 建設 順序表 的演算法庫 09.list.h ifndef list h included define list h included define max...