#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<stdbool.h>
struct arr
{
int * base;
int cent;
int length;
};
int main()
{
void init_arr(struct arr * parr,int length);
bool append_arr(struct arr *,int);
bool insert_arr(struct arr * parr,int pos,int value);
void sort_arr(struct arr *);
bool is_empty(struct arr *);
bool is_full(struct arr * parr);
void inverse_arr(struct arr * );
void show(struct arr * parr);
void delete_arr(struct arr * parr,int pos);
struct arr arry;int length=10;
init_arr(&arry,length);
if(append_arr(&arry,2)){printf("append yes:\n");}
if(append_arr(&arry,123)){printf("append yes:\n");}
if(append_arr(&arry,1)){printf("append yes:\n");}

if(insert_arr(&arry,1,999)){printf("insert yes:\n");}

show(&arry);

sort_arr(&arry);
printf("sort:\n");
show(&arry);

inverse_arr(&arry);
printf("inverse:\n");
show(&arry);

delete_arr(&arry,2);
show(&arry);
return 0;

}
bool is_empty(struct arr * parr)
{
if(parr->cent==0){return (true);}
else return (false);
}
void delete_arr(struct arr * parr,int pos)
{
if( is_empty(parr)){printf("void");}
else if(pos<1||pos>parr->cent){printf("shibai");}
else{
printf("%d_delete_yes",parr->base[pos-1]);
int i;
for(i=pos;i<parr->cent;i++)
{
parr->base[i-1]=parr->base[i];
}
parr->cent--;

}

}
void sort_arr(struct arr * parr)
{
int i,j;int t;
for(i=0;i<parr->cent-1;i++)
{

for(j=0;j<parr->cent-1-i;j++)
{
if((parr->base)[j] > (parr->base)[j+1]){

t=parr->base[j];
parr->base[j]=parr->base[j+1];
parr->base[j+1]=t;}

}
}
}
void inverse_arr(struct arr *parr)
{
int i=0,j=parr->cent-1;int t;
while(i<j)
{
t=parr->base[i];
parr->base[i]=parr->base[j];
parr->base[j]=t;
i++;j--;
}
}

void show(struct arr * parr)
{
if(is_empty(parr))
{
printf("void:\n");
}
else{

int i;
for(i=0;i<parr->cent;i++){printf("%d ",parr->base[i]);}
printf("\n");
}

}
void init_arr(struct arr * parr,int length)
{
parr->base=(int *)malloc(sizeof(struct arr)*length);
if (NULL==parr->base){exit(-1);}
parr->cent=0;
parr->length=length;

}
bool is_full(struct arr * parr)
{
if(parr->cent==parr->length){return true;}
else{return false;}
}
bool append_arr(struct arr * parr,int value)
{
if(is_full(parr)){return false;}
else{
parr->base[parr->cent]=value;parr->cent++;
return true;
}
}
bool insert_arr(struct arr * parr,int pos,int value)
{
if(is_full(parr)){return false;}
if(pos<1||pos>parr->cent+1){return false;}
int i;
for(i=parr->cent-1;i>=pos-1;i--){parr->base[i+1]=parr->base[i];}
parr->base[pos-1]=value;
parr->cent++;
return true;

}

最新文章

  1. vtkBoxWidget2Example
  2. 上传文件swfUploadConfig.js
  3. Linux内核总结
  4. C# WPF MVVM 实战 &ndash; 5- 用绑定,通过 VM 设置 View 的控件焦点
  5. 各式各样table
  6. JAVA中的内部类使用总结
  7. GLSL实现Interactive Fluid 流体【转】
  8. Critical Rendering Path
  9. C++学习之引用
  10. vim: 搭建vim看代码的环境
  11. Spring MVC Cookie example
  12. ConcurrentHashMap源码
  13. 一个linux bbr存在的调用顺序bug
  14. Windows下查看游戏服务器的IP地址
  15. java并发编程系列七:volatile和sinchronized底层实现原理
  16. laravel模型中设计使用单选按钮的方法:
  17. [CF1010E]Store[kd-tree]
  18. ifame_自适应高度
  19. HTML后续
  20. php给$_POST赋值会导致值为空

热门文章

  1. linux下redis数据库的简单使用
  2. C#中DataGridView 对XML文档的使用
  3. springmvc配置详解 教程
  4. FPGA学习笔记(三)—— 数字逻辑设计基础(抽象的艺术)
  5. 使用STM32Cube在STM32F7开发板上实现SD+Freertos+Fatfs
  6. ubuntu 16.04启用root用户方法
  7. 【bzoj2331】[SCOI2011]地板
  8. centos7 安装qt
  9. MYSQL—— 基础入门,增、删、改、查(基础篇)
  10. OsharpNS轻量级.net core快速开发框架简明入门教程-从零开始启动Osharp