首页 > 代码库 > 数据结构 数组的实现笔记
数据结构 数组的实现笔记
// 数组的实现 # include <stdio.h> # include <stdlib.h> # include <malloc.h> struct arry { int * p; // 数组第一个元素地址 int len; // 数组长度 int cnt; // 数组有效数字个数 }; void Create_Arry(struct arry *); // 数组的创建 void Arry_Input(struct arry *); // 数组数据的输入 void Show_Arry(struct arry *); // 数组的遍历 bool Is_Empty(struct arry *); // 判断数组是否为空 bool Is_Full(struct arry *); // 判断数组是否满 void Delete_Arry(struct arry *, int, int *); // 删除数组元素 void Destory_Arry(struct arry *); // 数组的销毁 int main(void) { struct arry arr; // 数组的创建 Create_Arry(&arr); // 数组数据的输入 Arry_Input(&arr); // 数组遍历 Show_Arry(&arr); return 0; } // 数组的创建 void Create_Arry(struct arry * arry) { printf("请输入您需要的数组最大长度:"); scanf("%d", &arry->len); arry->p = (int *)malloc((arry->len) * sizeof(int)); return; } // 数组数据的输入 void Arry_Input(struct arry * arry) { int cnt; printf("请输入您想赋值的元素个数:"); scanf("%d", &cnt); if (cnt > arry->len) { printf("您需要输入的数值的个数大于数组长度,输入失败!\n"); exit(-1); } int i; for (i = 0; i < cnt; ++i) { printf("请输入第%d个数组元素的值:", i+1); scanf("%d", &arry->p[i]); } arry->cnt = cnt; return; } // 数组的遍历 void Show_Arry(struct arry * arry) { if (Is_Empty(arry)) printf("数组为空,无数据可输出!\n"); else { int i; for (i = 0; i < arry->cnt; ++i) { printf("%d\n", arry->p[i]); } printf("\n"); } return; } // 判断是否为空 bool Is_Empty(struct arry * arry) { if (0 == arry->cnt) return true; else return false; } // 销毁数组中某个元素 void Delete_Arry(struct arry * arry, int pos, int * val) { if (pos > arry->cnt+1) { printf("数组中不存在该元素!\n"); exit(-1); } *val = arry->p[pos-1]; for (int i = pos-1; i < arry->cnt; ++i) arry->p[i] = arry->p[i+1]; return; } // 判断数组是否满 bool Is_Full(struct arry * arry) { if (arry->cnt == arry->len) return true; else return false; } // 数组的销毁 void Destory_Arry(struct arry * arry) { free(arry->p); arry->p = NULL; return; }
数据结构 数组的实现笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。