線性表專案2 「順序表」演算法庫終極完整版

2021-07-05 08:50:21 字數 3338 閱讀 6816

touwenjian.h

/*

* 檔名稱:main.cpp,hanshu.cpp,touwenjian.h

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

* 版本號:code ::block 13.12

** 問題描述:資料結構之自建演算法庫——順序表

* 輸入描述:無

* 程式輸出:線性表的結果

*/#ifndef touwenjian_h_included

#define touwenjian_h_included

#include #include #define maxsize 50 //maxsize將用於後面定義儲存空間的大小

typedef int elemtype; //elemtype在不同場合可以根據問題的需要確定,在此取簡單的int

typedef struct

sqlist;

void initlist(sqlist *&l);//初始化鍊錶

void createlist(sqlist *&l, elemtype a, int n);//用陣列建立線性表

bool listinsert(sqlist *&l,int i,elemtype e) ;//插入資料元素listinsert(l,i,e)

int listlength(sqlist *l);//求線性表的長度listlength(l)

bool getelem(sqlist *l,int i,elemtype &e);//求某個資料元素值getelem(l,i,e)

int locateelem(sqlist *l, elemtype e);//按元素值查詢locateelem(l,e)

bool listdelete(sqlist *&l,int i,elemtype &e);//刪除資料元素listdelete(l,i,e)

bool listempty(sqlist *l);//判斷線性表是否為空

void displist(sqlist *l);//輸出線性表

void destroylist(sqlist *&l);//銷毀線性表destroylist(l)

#endif // touwenjian_h_included

hanshu.cpp

#include "touwenjian.h"

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

void initlist(sqlist *&l)

//用陣列建立線性表createlist(sqlist l, elemtype a, int n)

void createlist(sqlist *&l, elemtype a, int n)

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

bool listinsert(sqlist *&l,int i,elemtype e)

i--;

for(j=l->length;j>i;j--)

l->data[i]=e;

l->length++;

return true;

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

int listlength(sqlist *l)

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

bool getelem(sqlist *l,int i,elemtype &e)

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

int locateelem(sqlist *l, elemtype e)

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

bool listdelete(sqlist *&l,int i,elemtype &e)

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

bool listempty(sqlist *l)

//輸出線性表displist(l)

void displist(sqlist *l)

//銷毀線性表destroylist(l)

void destroylist(sqlist *&l)

main.cpp

#include "touwenjian.h"

int main()

; createlist(sq, x, 6);//用陣列建立線性表

listinsert(sq, 1, 5);

listinsert(sq, 2, 3);

listinsert(sq, 1, 4);

// listlength(sq);

printf("表長度:%d\n", listlength(sq)); //測試求長度

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

if((loc=locateelem(sq, 8))>0) //測試能找到的情形

printf("找到了,值為8的元素是第 %d 個\n", loc);

else

printf("值為8的元素木有找到!\n");

if((loc=locateelem(sq, 17))>0) //測試不能找到的情形

printf("找到了,值為17的元素是第 %d 個\n", loc);

else

printf("值為17的元素木有找到!\n");

//getelem(sqlist *l,int i,elemtype &e)

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

if(getelem(sq, 3, a)) //測試在範圍內的情形

printf("找到了第3個元素值為:%d\n", a);

else

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

if(getelem(sq, 15, a)) //測試//刪除資料元素listdelete(l,i,e)不在範圍內的情形

printf("找到了第15個元素值為:%d\n", a);

else

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

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

listdelete(sq,2,b);

printf("被刪除的元素的值為:%d\n",b);

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

printf("線性表最終結果為:");

displist(sq);//輸出線性表

destroylist(sq);//銷毀線性表

線性表專案1 線性表相關函式2

檔名稱 main.cpp,hanshu.cpp,touwenjian.h 完成日期 2015年9月16日 版本號 code block 13.12 問題描述 測試線性表得初始化 插入 判斷是否為空 輸出幾個函式 輸入描述 無 程式輸出 線性表的結果 touwenjian.h ifndef touwe...

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

list.h ifndef list h included define list h included define maxsize 50 typedef int elemtype typedef struct sqlist void createlist sqlist l,elemtype a,...

線性表(2) 順序表

include include define init size 100 初始長度 define listincrement 增量 define elemtype int define error 0 define ok 1 typedef structsqlist 構造空表 int initlis...