/*
檔名稱:專案2--建設「順序表」演算法庫.cpp
作 者:魏樂天
完成日期:2023年10月9日
版 本 號:v1.0
問題描述: 領會「0207將演算法變程式」部分建議的方法,建設自己的專業基礎設施演算法庫。
這一周,建的是順序表的演算法庫。演算法庫包括兩個檔案:
1.標頭檔案:list.h,包含定義順序表資料結構的**、巨集定義、要實現演算法的函式的宣告;
2.原始檔:list.cpp,包含實現各種演算法的函式的定義
請採用程式的多檔案組織形式,在專案1的基礎上,建立如上的兩個檔案,另外再建立乙個原始檔,
編制main函式,完成相關的測試工作。請完成後,發布博文,展示你的實踐成果。
輸入描述: 若干資料 。
程式輸出: 1.線性表的長度。
2.第3個元素及其值的大小。
3.8在表中的第幾位。
4.刪除的元素。
5.刪除後的線性表。
6.刪除線性表。
*/
list.h標頭檔案
#include #include #define maxsize 50 //maxsize將用於後面定義儲存空間的大小
typedef int elemtype; //elemtype在不同場合可以根據問題的需要確定,在此取簡單的int
typedef struct
sqlist;
//宣告自定義函式
void initlist(sqlist *&l); //初始化順序表
void listinsert(sqlist *l,int i,int b); //插入函式
void displist(sqlist *l); //輸出函式
bool listempty(sqlist *l);//判定是否為空表listempty(l)
void destroylist(sqlist *l);//釋放線性表l占用的記憶體空間
int listdelete(sqlist *, int , int &);
bool listempty(sqlist *l);
int listlength(sqlist *l);
int locateelem(sqlist *l, elemtype e);
bool getelem(sqlist *l,int i,elemtype &e);
原始檔:list.cpp
#include"list.h"main函式//輸出線性表displist(l)
void displist(sqlist *l)
//判定是否為空表listempty(l)
bool listempty(sqlist *l)
//初始化順序表initlist(*l)
void initlist(sqlist *&l)
void listinsert(sqlist *l,int i,int b) //插入函式
i=i-1;
if(l->length==0)
else
l->data[i]=b;
l->length++; }}
void destroylist(sqlist *l)
int listdelete(sqlist *l, int i, int &e)
l->length--;
}return e;
}int listlength(sqlist *l)
bool getelem(sqlist *l,int i,elemtype &e)
int locateelem(sqlist *l, elemtype e)
if(i>=l->length)
return i+1;
}
#include"list.h"
int main()
執行結果
知識點總結:
多檔案的處理、線性表的應用以及演算法庫的建立。
第三週 專案二
include ifndef list h included define list h included define maxsize 50 using namespace std typedef int elemtype typedef struct sqlist void createlist...
第三週專案二
煙台大學計算機學院 問題描述 順序表建立,查詢,插入,刪除多檔案 輸入描述 無 輸出描述 順序表元素,查詢的元素,順序表位置 list.h cpp view plain copy ifndef list h included define list h included define maxsize...
第三週專案三
煙台大學計算機學院 檔名稱 main.cpp ti.cpp head.h 完成日期 2017年9月20日 問題描述 求兩個順序表的並集 輸入描述 無 輸出描述 無 include include include head.h using namespace std void unionlist sq...