数据结构---数组【连续存储】
来源:互联网 发布:矩阵制 编辑:程序博客网 时间:2024/05/16 12:47
<span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">#include<stdio.h></span>
<span style="font-size:18px;">#include<stdlib.h>#include<malloc.h>struct Arr{ int *pBase; int len; int cnt; };void init_arr(struct Arr *pArr,int length);bool is_empty(struct Arr *pArr);void show_arr(struct Arr *pArr);bool is_full(struct Arr * pArr);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 * pVal);void inversion_arr(struct Arr * pArr);void sort_arr(struct Arr * pArr);int main(void){int val; struct Arr arr; init_arr(&arr,6); show_arr(&arr); append_arr(&arr,4); append_arr(&arr,1); append_arr(&arr,9); append_arr(&arr,5); show_arr(&arr); insert_arr(&arr,1,8); show_arr(&arr); if(delete_arr(&arr,1,&val)) {printf("删除成功!\n");printf("删除的元素为:%d\n",val);}else{printf("删除失败!");}inversion_arr(&arr);show_arr(&arr);sort_arr(&arr);show_arr(&arr); system("pause"); return 0; }void init_arr(struct Arr *pArr,int length){ pArr->pBase = (int *)malloc(sizeof(int)* length); if(NULL==pArr->pBase) { printf("动态分配内存失败!\n"); exit(-1); }else{ pArr->len=length;pArr->cnt=0; } return ; }bool is_empty(struct Arr *pArr){if(0 == pArr->cnt)return true;elsereturn false;}void show_arr(struct Arr *pArr){if(is_empty(pArr)){printf("数组为空!\n"); }else{printf("数组为:") ;for(int i=0;i<pArr->cnt;++i)printf("%d ",pArr->pBase[i]);printf("\n");} }bool is_full(struct Arr * pArr){if(pArr->len == pArr->cnt)return true;elsereturn false;}bool append_arr(struct Arr * pArr,int val){if(is_full(pArr))return false;pArr->pBase[pArr->cnt] = val;(pArr->cnt)++;return true;}bool insert_arr(struct Arr * pArr,int pos,int val){if(is_full(pArr))return false;if(pos<1 || pos >pArr->cnt+1)return false;for(int i=pArr->cnt-1;i>=pos-1;--i){pArr->pBase[i+1] = pArr->pBase[i];}pArr->pBase[pos-1] = val;(pArr->cnt)++;return true;}bool delete_arr(struct Arr * pArr,int pos,int * pVal){if(is_empty(pArr))return false;if(pos<1 || pos > pArr->cnt)return false;*pVal = pArr->pBase[pos-1];for(int i=pos;i<pArr->cnt;++i){pArr->pBase[i-1] = pArr->pBase[i];}(pArr->cnt)--;return true;}void inversion_arr(struct Arr * pArr){int i=0;int j = pArr->cnt-1;int t;while(i<j){t = pArr->pBase[i];pArr->pBase[i] = pArr->pBase[j];pArr->pBase[j] = t;++i;--j;}return;}void sort_arr(struct Arr * pArr){int i,j,t;for(i=0;i<pArr->cnt;++i){for(j=i+1; j<pArr->cnt; ++j){if(pArr->pBase[i] > pArr->pBase[j]){t = pArr->pBase[i];pArr->pBase[i] = pArr->pBase[j];pArr->pBase[j] = t;}}}}</span>
0 0
- 数据结构---数组【连续存储】
- 数据结构--连续存储数组算法
- 07-数据结构_线性结构-连续存储-数组
- 数据结构线性结构之连续存储---数组
- 数据结构 ——连续存储数组的算法
- 数据结构学习笔记之线性结构--连续存储[数组]
- 郝斌数据结构连续存储数组的算法演示
- 郝斌数据结构 12 连续存储数组的算法演示
- 数据结构 12 连续存储数组的算法演示
- 连续存储的数组
- 连续数组存储
- 连续存储---数组
- 连续存储_数组
- 连续存储数组的算法
- 线性结构---连续存储[数组]
- (郝斌讲学)数据结构学习篇(二)---数组的操作连续存储
- 【郝斌数据结构自学笔记】12-13_连续存储数组的算法演示
- 跟着郝斌学数据结构(02)——连续存储数组的算法
- apache支持中文下载(64位)
- JQuery EasyUI datagrid 键盘上下控制选中行
- POJ 1157/SGU104 Little shop of flowers(DP)
- ArcGIS Server 管理器登陆不进去的问题
- Windows下查看动态链接库接口
- 数据结构---数组【连续存储】
- tomcat体积小,weblogic非常庞大,为什么公司要用那么大weblogic,却不用tomcat呢?
- vim 查看json
- 机试题
- 测试开发的一点收获总结
- Oracle 11g 新特性 -- ASM 增强 说明
- Mac下,boost下载安装脚本
- Junit 4 Tutorials(Junit 4 系列教程) 二、Junit4 注解
- auto_ptr 与 shared_ptr 用法和区别总结