順序表

添加頭文件

聲明宏定義

設計數據結構

功能函數聲明

具體功能實現





在這裏插入圖片描述
在這裏插入圖片描述

簡單調用測試

int main()
{
	// 創建
	Array* arr = create_array(20);
	// 存數
	for(int i=0; i<100; i++)
	{
		TYPE* p = access_array(arr,i);
		if(NULL != p) 
		{
			*access_array(arr,i) = rand() % 100;
			// access_array(arr,i)返回值是地址,可以解引用
			// *access_array(arr,i)就相當於是*p,也就相當於是變量,可賦值
			// 若是下標i有問題,返回的地址可能爲空,就會形成段錯誤
			// 故要先把每個返回值都接收一下,判斷是否爲空,才進行賦值,這樣無論 i<多少 程序都可以運行,只會放進<20的數
		}
	}
	show_array(arr);
	
	sort_array(arr);
	show_array(arr);
	
	printf("find index = %d\n",find_array(arr,86));
	
	delete_array(arr,15);
	delete_array(arr,15);
	printf("find index = %d\n",find_array(arr,86));
	show_array(arr);
	
	insert_array(arr,10,86);
	printf("find index = %d\n",find_array(arr,86));
	show_array(arr);
	
	destory_array(arr);
}

結果

在這裏插入圖片描述

總結

創建:malloc先後兩個空間
銷燬:free先後銷燬兩個空間
訪問:判斷下標合法後即可返回存儲的元素
查找:循環判斷表中的元素是否相等,找到後返回下標
排序:常規對元素進行排序
遍歷:循環打印
刪除:判斷下標合法後將index後面的元素向前移(i++),覆蓋掉原元素
插入:判斷下標合法後將index空出,循環從後往前將元素後移(i–),跳出循環後再給index位賦值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章