問題:
/*
*檔名稱:順序表的基本運算.cpp
*作 者:張芸嘉
*完成日期:2023年9月21日
*版 本 號:v1.0
* *問題描述:實現順序表基本運算有演算法,依據「最小化」的原則進行測試。所謂最小化
原則,指的是利用盡可能少的基本運算,組成乙個程式,並設計main函式
完成測試。
*輸入描述:無
*程式輸出:依據各個函式而定
*/
**:(1)
#ifndef list_h_included
#define list_h_included
#include #include #define maxsize 50
typedef int elemtype;
typedef struct
sqlist;
void createlist(sqlist *&l, elemtype a, int n);//用陣列建立線性表
bool listempty(sqlist *l);//判定是否為空表listempty(l)
void displist(sqlist *l);//輸出線性表displist(l)
#endif
//測試函式
int main()
; createlist(sq, x, 8);//最後為0則是空表
if((listempty(sq))>0) //測試不能找到的情形
printf("是空表\n");
else
printf("不是空表\n");
displist(sq);
return 0;
}//定義各個自定義函式
//用陣列建立線性表
void createlist(sqlist *&l, elemtype a, int n)
//判定是否為空表listempty(l)
bool listempty(sqlist *l)
//輸出線性表displist(l)
void displist(sqlist *l)
執行結果:![](https://pic.w3help.cc/1ef/90fed58ad5894ff1df09ee1eaa346.jpeg)
(2)
#ifndef list_h_included
#define list_h_included
#include #include #define maxsize 50
typedef int elemtype;
typedef struct
sqlist;
void createlist(sqlist *&l, elemtype a, int n);//用陣列建立線性表
bool listempty(sqlist *l);//判定是否為空表listempty(l)
void displist(sqlist *l);//輸出線性表displist(l)
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)
#endif
//測試函式
int main()
; createlist(sq, x, 8);//最後為0則是空表
printf("表長度:%d\n", listlength(sq)); //測試求長度
if(getelem(sq, 3, e)) //測試在範圍內的情形
printf("找到了第3個元素值為:%d\n", e);
else
printf("第3個元素超出範圍!\n");
if(getelem(sq, 15, e)) //測試不在範圍內的情形
printf("找到了第15個元素值為:%d\n", e);
else
printf("第15個元素超出範圍!\n");
if((k=locateelem(sq, 1))>0) //測試能找到的情形
printf("找到了,值為1的元素是第 %d 個\n", k);
else
printf("值為1的元素木有找到!\n");
if((k=locateelem(sq, 16))>0) //測試不能找到的情形
printf("找到了,值為16的元素是第 %d 個\n", k);
else
printf("值為16的元素木有找到!\n");
return 0;
}//定義各個自定義函式
//用陣列建立線性表
void createlist(sqlist *&l, elemtype a, int n)
//判定是否為空表listempty(l)
bool listempty(sqlist *l)
//求線性表的長度listlength(l)
int listlength(sqlist *l)
//輸出線性表displist(l)
void displist(sqlist *l)
//求某個資料元素值getelem(l,i,e)
bool getelem(sqlist *l,int i,elemtype &e)
//按元素值查詢locateelem(l,e)
int locateelem(sqlist *l, elemtype e)
執行結果:![](https://pic.w3help.cc/4fb/e0450aae8cb81d8a005d136cb6cda.jpeg)
(3)
#ifndef list_h_included
#define list_h_included
#include #include #define maxsize 50
typedef int elemtype;
typedef struct
sqlist;
void displist(sqlist *l);
bool listempty(sqlist *l);
void initlist(sqlist *&l); //引用型指標
void destroylist(sqlist *&l);
bool listinsert(sqlist *&l,int i,elemtype e);
bool listdelete(sqlist *&l,int i,elemtype &e);
#endif
//測試函式
int main()
//定義各個自定義函式
//輸出線性表displist(l)
void displist(sqlist *l)
//判定是否為空表listempty(l)
bool listempty(sqlist *l)
//初始化線性表initlist(l)
void initlist(sqlist *&l) //引用型指標
//銷毀線性表destroylist(l)
void destroylist(sqlist *&l)
//插入資料元素listinsert(l,i,e)
bool listinsert(sqlist *&l,int i,elemtype e)
//刪除資料元素listdelete(l,i,e)
bool listdelete(sqlist *&l,int i,elemtype &e)
執行結果:![](https://pic.w3help.cc/e0d/7074357dce4269064c24973e65203.jpeg)
知識點總結:
此程式讓我們對線性表演算法庫有了乙個從簡到繁的認識,演算法庫對於我們認識學習演算法有非常大的幫助。
學習心得:
這個程式對我來說是有些困難的,可能也與之前基礎打的不好有關,但我相信只要堅持就會成功!
第3周 專案1 順序表的基本運算
all right reserved.檔名稱 20170920.cpp 完成日期 2017年9月20日 版本號 v1.1 問題描述 實現順序表基本運算有演算法,依據 最小化 的原則進行測試 輸入描述 建立線性表 程式輸出 輸出線性表 1 測試 建立線性表 的演算法createlist,為檢視建表的結...
第3周專案1 順序表的基本運算(3)
檔名稱 第3周專案1 順序表的基本運算 3 cpp 作 者 陳勝男 完成日期 2015年10月9日 版 本 號 v1.0 問題描述 3 其餘的4個基本運算 插入資料元素listinsert 刪除資料元素listdelete 初始化線性表initlist 銷毀線性表destroylist都可以同法完成...
第3周專案1 順序表的基本運算(1)
檔名稱 第3周實踐專案 順序表的基本運算.cpp 作 者 滕健 完成日期 2016年9月13日 版 本 號 v1.0 問題描述 領會 0207將演算法變程式 部分建議的方法,將順序表部分的演算法變成程式。實現順序表基本運 則進行測試。所謂最小化原則,指的是利用盡可能少的基本運算,組成乙個程式,並設計...