当前位置:
文档之家› 数据结构线性表的顺序表示和实现(C语言)概论
数据结构线性表的顺序表示和实现(C语言)概论
bool delete_arr(struct Arr * pArr, int pos, int * val); //删除数组中的一个元素
int get(struct Arr * pArr, int pos); //获取某个元素的值
bool is_empty(struct Arr * pArr); //判断数组是否为空
{
printf("%d ", pArr->pBase[i]);
}
printf("\n");
}
}
/*
判断数组是否为空数组
@param struct Arr * pArr结构体变量指针
return Boolean
*/
bool is_empty(struct Arr * pArr)
{
if( 0 == pArr->cnt )
{
return true;
}
else
{
return false;
}
}
/*
追加一个元素
@param struct Arr * pArr结构体变量指针
@param int val追加的元素的值
return Boolean
*/
bool append_arr(struct Arr * pArr, int val)
//判断动态内存是否创建成功
if( NULL == pArr->pBase)
{
printf("动态内存常见失败\n");
eHale Waihona Puke it(-1);}//为其他元素赋值
pArr->len = length;
pArr->cnt = 0;
return;//标识此函数结束
}
/*
将数组展示出来
@param struct Arr * pArr结构体变量指针
return void
*/
void show_arr(struct Arr * pArr)
{
int i;
//首先判断这个数组是否有有效值
if( is_empty(pArr) )
{
printf("这个数组为空\n");
exit(-1);
}
else
{
for(i = 0; i < pArr->cnt; ++i)
*/
bool is_full(struct Arr * pArr)
/*
创建一个数组,实现对这个数组的操作
1,追加一个元素
2,插入一个元素
3,对数组排序
4,反转数组元素
*/
int main(void)
{
//定义一个结构体变量
struct Arr array;
//获取一个被删除的元素的值
int val;
//使用函数init_arr()初始化数组
init_arr(&array, 5);
return 0;
}
/*
初始化数组
@param struct Arr * pArr结构体变量指针
@param int length定义数组的长度
return void
*/
void init_arr(struct Arr * pArr,int length)
{
pArr->pBase = (int *)malloc(sizeof(int) * length);
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); //插入一个元素
//追加一个元素
append_arr(&array, 5);
append_arr(&array, 3);
append_arr(&array, 7);
append_arr(&array, 1);
printf("初始化的数组为:\n");
show_arr(&array);
//使用函数insert_arr()插入一个元素
show_arr(&array);
//使用函数sort_arr()对数组进行排序
printf("将数组进行排序:\n");
sort_arr(&array);
show_arr(&array);
//使用函数delete_arr()删除一个元素
printf("删除数组中第三个元素:\n");
delete_arr(&array, 3, &val);
{
if(is_full(pArr))
{
printf("该数组已满\n");
return false;
}
pArr->pBase[pArr->cnt] = val;
pArr->cnt++;
return true;
}
/*
判断数组是否已经爆满
@param struct Arr * pArr结构体变量指针
return Boolean
show_arr(&array);
//使用函数append_arr()追加一个元素
printf("在数组的最后追加一个数值50:\n");
append_arr(&array,50);
show_arr(&array);
//使用函数get()获得一个元素
printf("得到数组中第三个元素:\n%d\n",get(&array,3));
bool is_full(struct Arr * pArr); //判断数组是否已满
void sort_arr(struct Arr * pArr); //为数组进行从小到大排序
void show_arr(struct Arr * pArr); //显示数组内容
void inversion_arr(struct Arr * pArr); //反转数组中的所有值
printf("在第三个元素前插入一个数值99:\n");
insert_arr(&array, 3, 99); //在第三个元素前,插入一个元素
show_arr(&array);
//使用函数inversion_arr()对数组中的元素进行翻转
printf("反转数组中的所有值:\n");
inversion_arr(&array);
/*
线性结构,线性表的顺序表示和实现
*/
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h> //包含了exit()函数
//定义一个数组结构体
struct Arr
{
int * pBase; //保存数组的指针
int len; //保存数组的长度