/*
*檔名稱:dsitem3-1.cpp
*作 者:於子淇
*完成日期:2023年9月14日
*版 本 號:visual c++ 6.0
* *問題描述:領會「0207將演算法變程式」部分建議的方法,將順序表部分的演算法變成程式。
*依據「最小化」的原則進行測試。所謂最小化原則,指的是利用盡可能少的基本運算,組成乙個程式,並設計main函式完成測試。
*輸入描述:無
*程式輸出:見程式執行結果演示
*/
知識點:增加函式初始化線性表initlist(&l),銷毀線性表destroy(&l),插入資料元素listinsert(&l,i,e)#include #include #define maxsize 50 //maxsize將用於後面定義儲存空間的大小
typedef int elemtype; //elemtype在不同場合可以根據問題的需要確定,在此取簡單的int
typedef struct
sqlist;//順序表型別
//自定義函式宣告部分
void createlist(sqlist *&l, elemtype a, int n);//用陣列建立線性表
void displist(sqlist *l);//輸出線性表displist(l)
bool listempty(sqlist *l);//判定是否為空表listempty(l)
bool getelem(sqlist *l,int i,elemtype &e);//求線性表中某個資料元素的值
int listlength(sqlist *l);//求線性表的長度listlength(l)
int locateelem(sqlist *l, elemtype e); //按元素值查詢locateelem(l,e)
bool listinsert(sqlist *&l,int i,elemtype e);
void initlist(sqlist *&l);//初始化線性表initlist(&l)
void destroylist(sqlist *&l);//銷毀線性表destroy(&l)
//實現測試函式
int main()
; createlist(sq, x, 6);
displist(sq);
//以下程式為新增函式測試
printf("表長度:%d\n", listlength(sq)); //測試求長度
if(getelem(sq, 3, a)) //測試在範圍內的情形
printf("找到了第3個元素值為:%d\n", a);
else
printf("第3個元素超出範圍!\n");
if(getelem(sq, 15, a)) //測試不在範圍內的情形
printf("找到了第15個元素值為:%d\n", a);
else
printf("第15個元素超出範圍!\n");
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");
return 0;*/
sqlist *sq;
initlist(sq);
listinsert(sq, 1, 5);
listinsert(sq, 2, 3);
listinsert(sq, 1, 4);
displist(sq);
return 0;
}//下面實現要測試的各個自定義函式
//用陣列建立線性表
void createlist(sqlist *&l, elemtype a, int n)//由a中的n個元素建立順序表
//輸出線性表displist(l)
void displist(sqlist *l)
//判定是否為空表listempty(l)
bool listempty(sqlist *l)
//求線性表中某個元素的值getelem(l,i,e)
bool getelem(sqlist *l,int i,elemtype &e)
//按元素值查詢locateelem(l,e)
int locateelem(sqlist *l, elemtype e)
//求線性表的長度listlength(l)
int listlength(sqlist *l)
//插入資料元素listinsert(&l,i,e)
bool listinsert(sqlist *&l,int i,elemtype e)
//初始化線性表initlist(&l)
void initlist(sqlist *&l)
//銷毀線性表 destroy(&l)
void destroylist(sqlist *&l)
程式執行結果演示:
第3周專案1 2 順序表的基本運算
問題及 檔名稱 cpp1.作 者 薛瑞琪 完成日期 2017 年 9 月 13 日 版 本 號 v1.0 問題描述 在已經建立線性表的基礎上,求線性表的長度listlength 求線性表l中指定位置的某個資料元素getelem 查詢元素locateelem的演算法都可以實現了。就在原程式的基礎上增加...
第3周專案1(1) 順序表的基本運算
all rights reserved.檔名稱 dsitem3 1.cpp 作 者 於子淇 完成日期 2017年9月14日 版 本 號 visual c 6.0 問題描述 領會 0207將演算法變程式 部分建議的方法,將順序表部分的演算法變成程式。依據 最小化 的原則進行測試。所謂最小化原則,指的是...
第3周 專案1 順序表的基本運算
all right reserved.檔名稱 20170920.cpp 完成日期 2017年9月20日 版本號 v1.1 問題描述 實現順序表基本運算有演算法,依據 最小化 的原則進行測試 輸入描述 建立線性表 程式輸出 輸出線性表 1 測試 建立線性表 的演算法createlist,為檢視建表的結...