链表的几个功能,满

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
struct Arr{
int *pBase;//存储数组的第一个单元
int len;//数组所能容纳的最大元素个数
int cnt;//当前数组有效元素个数
};
void init_arr(struct Arr *pArr,int length);//数组的初始化
bool append_arr(struct Arr *pArr,int val);
bool is_empty(struct Arr *pArr);//判断是否为空
bool is_full(struct Arr *pArr);//判断是否满
void show_arr(struct Arr *pArr);//显示数组


int main()
{
    struct Arr arr;
    init_arr(&arr,4);
    show_arr(&arr);
    
    printf("%d\n",arr.len);
    append_arr(&arr,1);
    append_arr(&arr,2);
    append_arr(&arr,2);
    append_arr(&arr,4);
    if(append_arr(&arr,5))
      printf("true\n");
      else
      printf("false\n");
    show_arr(&arr);

    return 0;
}

 bool is_empty(struct Arr *pArr)
{
 if(0==pArr->cnt)
     return true;
 else
     return false;
}

bool is_full(struct Arr *pArr)
{
  if (pArr->cnt==pArr->len)
      return true;
      else
       return false;
}

void show_arr(struct Arr *pArr)
{
    if(is_empty(pArr))
    {
      printf("数组为空\n");
    }
    else
    {
        for(int i=0;i<pArr->cnt;i++)
        printf("%d ",pArr->pBase[i]);
    }
}
void init_arr(struct Arr *pArr,int length)
{
    pArr->pBase=(int *)malloc(sizeof(int)*length);
    if(NULL==pArr->pBase)
    {printf("动态内存分配失败");
    exit(-1);
    }
    else
    {
        pArr->len=length;
        pArr->cnt=0;
    }

    return;
}

bool append_arr(struct Arr *pArr,int val)
{
    //满是否返回false
    if(is_full(pArr))
    return false;
    //不满时追加
    pArr->pBase[pArr->cnt]=val;
    (pArr->cnt)++;
    return true;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值