首页 / C语言 / 数据结构之C语言模拟整数数组实现
数据结构之C语言模拟整数数组实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了数据结构之C语言模拟整数数组实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2722字,纯文字阅读大概需要4分钟。
内容图文
#include <stdio.h> #include <malloc.h> #include <stdlib.h> typedef struct Arr { int *pBase; //数组第一个元素地址int len; //数组长度int cnt; //当前有效元素数量} Array; void init_array(Array *, int); //初始化数组void show_array(Array *); //遍历打印数组bool is_empty(Array *); //判断数组是否空bool insert_array(Array *, int pos, int); //插入元素 pos表示在第几个元素前面插入bool append_array(Array *, int); //添加元素bool del_array(Array *, int pos, int * val); //删除第几个元素bool is_full(Array *); //判断数组是否已满void sort_arr(Array * pArr); //默认升序void inversion_arr(struct Arr * pArr);//反转数组int main() { Array a; init_array(&a, 10); append_array(&a, 0); append_array(&a, 1); append_array(&a, 2); append_array(&a, 3); append_array(&a, 4); append_array(&a, 5); inversion_arr(&a); show_array(&a); getchar(); free((&a)->pBase); } void inversion_arr(struct Arr * pArr){ int i = 0; int j = pArr->cnt-1; int temp = 0; while (i < j){ temp = pArr->pBase[i]; pArr->pBase[i] = pArr->pBase[j]; pArr->pBase[j] = temp; ++i; --j; } } void sort_arr(Array * pArr){ int temp = 0; for (int i = 0; i < pArr->cnt; i++){ for (int j = 0; j < pArr->cnt-1 - i; j++){ if (pArr->pBase[j] > pArr->pBase[j + 1]) { temp = pArr->pBase[j]; pArr->pBase[j] = pArr->pBase[j + 1]; pArr->pBase[j + 1] = temp; } } } } bool del_array(Array * arr, int pos, int * val){ if (is_empty(arr)) { printf("array is empty\n"); returnfalse; } if (pos < 1 || pos>arr->cnt){ printf("position is error \n"); returnfalse; } *val = arr->pBase[pos - 1]; for (int i = pos; i < arr->cnt; i++) { arr->pBase[i - 1] = arr->pBase[i]; } arr->cnt--; returntrue; } bool append_array(Array * arr, int val){ if (is_full(arr)){ printf("array is full"); returnfalse; } arr->pBase[arr->cnt] = val; arr->cnt++; returntrue; } bool is_full(Array *arr) { return arr->cnt == arr->len; } bool insert_array(Array *arr, int pos, int val) { if (is_full(arr)) { printf("array is full"); returnfalse; } if (pos < 1 || pos > arr->cnt + 1) { printf("position is error\n"); returnfalse; } for (int i = arr->cnt; i >= pos - 1; i--) { arr->pBase[i] = arr->pBase[i - 1]; } arr->pBase[pos - 1] = val; arr->cnt++; returntrue; } void init_array(Array *arr, int len) { arr->pBase = (int *)malloc(sizeof(int) * len); if (NULL == arr->pBase) { printf("内存分配失败"); exit(-1); } else { arr->cnt = 0; arr->len = len; } } bool is_empty(Array *arr) { return0 == arr->cnt; } void show_array(Array *arr) { if (is_empty(arr)) { printf("数组为空不能打印"); } else { for (int i = 0; i < arr->cnt; i++) { printf("%d ", arr->pBase[i]); } } }
原文:http://www.cnblogs.com/or2-/p/4482819.html
内容总结
以上是互联网集市为您收集整理的数据结构之C语言模拟整数数组实现全部内容,希望文章能够帮你解决数据结构之C语言模拟整数数组实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。