数据结构线性表的顺序表示和实现(C语言).doc
文本预览下载声明
/*
线性结构,线性表的顺序表示和实现
*/
# include stdio.h
# include malloc.h
# include stdlib.h //包含了exit()函数
//定义一个数组结构体
struct Arr
{
int * pBase; //保存数组的指针
int len; //保存数组的长度
int cnt; //数组元素的有效个数
};
//前置函数声明
void init_arr(struct Arr * pArr,int length); //初始化
bool append_arr(struct Arr * pArr,int val); //追加一个元素
bool insert_arr(struct Arr * pArr, int pos, int val); //插入一个元素
bool delete_arr(struct Arr * pArr, int pos, int * val); //删除数组中的一个元素
int get(struct Arr * pArr, int pos); //获取某个元素的值
bool is_empty(struct Arr * pArr); //判断数组是否为空
bool is_full(struct Arr * pArr); //判断数组是否已满
void sort_arr(struct Arr * pArr); //为数组进行从小到大排序
void show_arr(struct Arr * pArr); //显示数组内容
void inversion_arr(struct Arr * pArr); //反转数组中的所有值
/*
创建一个数组,实现对这个数组的操作
1,追加一个元素
2,插入一个元素
3,对数组排序
4,反转数组元素
*/
int main(void)
{
//定义一个结构体变量
struct Arr array;
//获取一个被删除的元素的值
int val;
//使用函数init_arr()初始化数组
init_arr(array, 5);
//追加一个元素
append_arr(array, 5);
append_arr(array, 3);
append_arr(array, 7);
append_arr(array, 1);
printf(初始化的数组为:\n);
show_arr(array);
//使用函数insert_arr()插入一个元素
printf(在第三个元素前插入一个数值99:\n);
insert_arr(array, 3, 99); //在第三个元素前,插入一个元素
show_arr(array);
//使用函数inversion_arr()对数组中的元素进行翻转
printf(反转数组中的所有值:\n);
inversion_arr(array);
show_arr(array);
//使用函数sort_arr()对数组进行排序
printf(将数组进行排序:\n);
sort_arr(array);
show_arr(array);
//使用函数delete_arr()删除一个元素
printf(删除数组中第三个元素:\n);
delete_arr(array, 3, val);
show_arr(array);
//使用函数append_arr()追加一个元素
printf(在数组的最后追加一个数值50:\n);
append_arr(array,50);
show_arr(array);
//使用函数get()获得一个元素
printf(得到数组中第三个元素:\n%d\n,get(array,3));
return 0;
}
/*
初始化数组
@param struct Arr * pArr 结构体变量指针
@param int length 定义数组的长度
return void
*/
void init_arr(struct Arr * pArr,int leng
显示全部