Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21057
  • 博文数量: 3
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 83
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-25 09:25
文章分类
文章存档

2013年(3)

我的朋友

分类: Windows平台

2013-03-23 00:35:30

//数组的线性表的数据结构实现,包括大部分操作
//当然也有一些懒得去实现
#include
#include
#include
//#define LEHGRTH  12
typedef struct Arr{

         int *pBase;  //存储的元素第一个地址(基地址)
         int len;     //当前数组中的元素最大个数
         int cnt;     //当前有效数组元素的个数

};
void init_arr(Arr *pArr,int LEHGRTH); //初始化
bool append_arr(Arr *parr,int val);//追加
bool insert_arr(Arr *parr,int pos,int val); //插入  pos值从1开始
bool delete_arr(Arr *parr,int pos,int *pval);  //删除元素
bool is_empty(Arr *arr); //是否为空
bool is_full(Arr *arr);  //是否为满
bool sort_arr(); //排序
int  get_element(); //获取元素
bool inversion_arr(Arr *arr);//倒置
void show_arr(Arr *arr);  //显示

int main(void){

         Arr arr;
         int LEHGRTH =12;
         init_arr(&arr,LEHGRTH );
         //show_arr(&arr);
         if(append_arr(&arr,3)){
                     printf("append is sucess\n");
 }    
  append_arr(&arr,3);
 append_arr(&arr,3);
 append_arr(&arr,3);
 append_arr(&arr,3);
 insert_arr(&arr,4,123);
 insert_arr(&arr,2,123);
 show_arr(&arr);
 int a;
 if(delete_arr(&arr,9,&a)){
 
  printf("the delete num is %d\n",a);
 
 }else{
 
  printf("the delete is wrong\n");
 
 }
 show_arr(&arr);
 system("pause");


}
void init_arr(Arr *pArr,int LEHGRTH){

 pArr->pBase=(int  *)malloc(sizeof(int)*LEHGRTH );
 if(pArr->pBase==NULL){
  printf("Auto distribute is wrong");
  exit(-1);
 }else{
  pArr->len=LEHGRTH ;
  pArr->cnt=0;
 }

 return ;
}

void show_arr(Arr *arr){
 if(is_empty(arr)==true){
  printf("the arry is empty\n");
 
 }else{
  for(int i = 0;i<=arr->cnt-1;i++ ){
   printf("%d ",arr->pBase[i]);
  }
 }
 printf("\n");
 return;
}
bool is_empty(Arr *arr){

 if (arr->cnt==0){
  return true;
 }else {
  return false;
 }

}

bool append_arr(Arr *parr,int val){
 if(is_full(parr)){
  return false;
 }else{
   
  parr->pBase[parr->cnt]=val;
  ++parr->cnt;
  return true;
 }
}
bool is_full(Arr *parr){
 if(parr->cnt==parr->len){
  return true;
 }else {
  return false;
 }
}

bool insert_arr(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(Arr *parr,int pos,int *pval/*传输返回值*/){
 if(is_empty(parr)||pos<1||pos>=parr->cnt){
  return false;
 
 }
 *pval = parr->pBase[pos-1];
 for(int i = pos - 1;i<=parr->cnt;i++){
  parr->pBase[i]=parr->pBase[i+1];
 }
 parr->cnt--;
 return true;
}


bool inversion_arr(Arr *arr){
 
}

阅读(1454) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~