数据结构入门——数组篇(c语言实现数组,附源码)

一、数组的定义

数组是多个有序数据的集合(有序:地址连续),数组中的每一个元素都属于同一数据类型

二、数组的声明

一维数组

一维数组声明的简单形式:
类型说明符 数组名 [整数类型表达式];
其中,类型说明符是数组元素的类型,数组名是一个标识符,符号“[]”内的整数类型表达式表示数组元素的个数,即数组的长度。如果整数类型表达式是常量表达式,其值必须大于0。

二维数组

二维数组声明的简单形式:
** 类型说明符 数组名 【行数 】【列数 】; **
其中,类型说明符是数组元素的类型,数组名是一个标识符;行数和列数是整数类型表达式,数组元素的个数是行数与列数的乘积。如果表示行数或列数的表达式是整数常量表达式,其值必须大于零。

三、数组的C语言实现

1、数组的定义

仿造java中的ArrayList,应该还会有一个自动增长因子。用于在添加时如果数组的长度不够,那么会自动的扩充。那么扩充多少就依赖于自动增长因子。

struct Arr{
   
    int * pBase; //存储的是数组第一个元素的地址
    int len; //数组所能容纳的最大元素的个数
    int cnt; //当前数组有效元素的个数
    //int increment; //自动增长因子
};
2、数组各个功能的实现
  • 初始化
  • 追加数据
  • 插入数据
  • 删除数据
  • 获取数据
  • 排序
  • 显示数组全部内容
  • 倒置
  • 是否空
  • 是否满
#include<stdio.h>
#include <stdbool.h>
#include<stdlib.h>
#include<malloc.h>
struct Arr{
   
    int * pBase; //存储的是数组第一个元素的地址
    int len; //数组所能容纳的最大元素的个数
    int cnt; //当前数组有效元素的个数
    //int increment; //自动增长因子
};

void init(struct Arr * , int); //初始化
bool append(struct Arr * , int); //追加
bool insert(struct Arr * , int , int); //插入
bool delete(struct Arr * , int , int *); //删除
int  get(struct Arr * , int ); //获取
void sort(struct Arr *); //排序
void show(struct Arr *); //显示
void inversion(struct Arr *); //倒置(反转)

bool isEmpty(struct Arr *); //是否空
bool isFull(struct Arr *); //是否满


int main(void){
   
    struct Arr arr;
    int val;
    printf("开始初始化数组...\n")
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值