用c实现部分java数组功能,很烂,留个参考吧
#include<stdio.h>
#include<malloc.h>
void initMyarry(struct Myarry *arr);
int isFull(struct Myarry *arr);
void expandMyarry(struct Myarry *arr);
void show(struct Myarry * arr);
void add(struct Myarry *arr,int data);
struct Myarry{
//数组的首地址
int * firstAddress;
//当前数组的大小
int currentLength;
//初始化数组大小
int initLength;
//当前元素
int current;
//增长因子
double times;
};
main(){
struct Myarry myarry;
//初始化数组
initMyarry(&myarry);
//增加元素
int i = 1 ;
for( ; i <=25 ; i++){
add(&myarry,i);
}
//show出元素
show(&myarry);
}
//判断数组是否已经满了
int isFull(struct Myarry *arr){
if(arr->current > arr->currentLength){
return 1;
}else{
return 0;
}
}
//按照增长因子来增加数组长度
void expandMyarry(struct Myarry *arr){
printf("expandMyarry");
//开辟新的空间
int spaceSize = arr->currentLength + arr->initLength * arr->times ;
printf("spaceSize = %d\n",spaceSize);
int * newSpaceAddress = (int * ) malloc(sizeof(int) * spaceSize );
if(newSpaceAddress==NULL){
printf("has no nough space for newSpaceAddress ");
exit(1);
}else{
//复制元素
int i = 0;
for(; i < arr->current ; i++){
*(newSpaceAddress + i ) = *(arr->firstAddress + i );
}
arr->currentLength = spaceSize;
arr->firstAddress = newSpaceAddress;
}
}
//在数组末尾插入数据
void add(struct Myarry *arr,int data){
// printf("data = %d",data);
//判断数组是否已经满0
// 1 是
if( isFull(arr)){
expandMyarry(arr);
add(arr,data);
}
// 2 否
else{
printf("\n");
*( arr->firstAddress + arr->current ) = data;
arr->current += 1;
}
}
//显示数组里面的值
void show(struct Myarry * arr){
int i = 0;
for(;i < arr->current ; i++){
printf("arr[%d] = %d\n" ,i , *(arr->firstAddress + i));
}
}
//初始化数组
void initMyarry(struct Myarry * arr){
//当前数组大小为20
arr->currentLength = 20;
//初始化数组大小
arr->initLength = 20;
//增长因子为1.5
arr->times = 1.5;
//当前元素为0
arr->current=0;
//开辟空间
arr->firstAddress = (int *)malloc(sizeof(int)*(arr->currentLength));
if(arr->firstAddress == NULL){
printf("has no enough space");
}
}
用c实现部分java数组功能,很烂,留个参考吧相关推荐
- 横版java_Project4 自己用java写的横版格斗游戏
功能还不是很复杂
可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...
文件名称: Project4下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 5963 KB 上传时间: 2013-07-17 下载次数: 4 提 供 者: lyk ...
- 打印Java数组的最简单方法是什么?
在Java中,数组不会覆盖toString() ,因此,如果尝试直接打印一个,则将得到className +'@'+数组的hashCode的十六进制,如Object.toString()所定义: in ...
- Java数组与容器类分析资料--数组、List和Set、Map等
2019独角兽企业重金招聘Python工程师标准>>> Java容器分析--数组 数组是Java语言内置的类型,除此之外,Java有多种保存对象引用的方式.Java类库提供了一套相当 ...
- Java 8功能教程– ULTIMATE指南(PDF下载)
编者注:在本文中,我们提供了全面的Java 8功能教程. 自Java 8公开发布以来已经有一段时间了,所有迹象都表明这是一个非常重要的版本. 我们在Java Code Geeks处提供了大量教程,例如 ...
- java数组使用实验报告_JAVA数组与类的定义-java实验报告
JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...
- Java数组与容器类分析资料--数组、List和Set、Map-asp.net关注
数组是Java语言内置的类型,除此之外,Java有多种保存对象引用的方式.Java类库提供了一套相当完整的容器类,使用这些类的方法可以保存和操纵对象.下面分别进行讨论,在研究Java容器类之前,先了解 ...
- Java-杂项:Java数组Array和集合List、Set、Map
ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊 ...
- java中的数组增删查改操作,java数组实现增删改查
java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...
- java数组删除数组元素_如何在Java中删除数组元素
java数组删除数组元素 When we create an array in Java, we specify its data type and size. This is used by JVM ...
最新文章
- 全民K歌内容挖掘与召回
- Django 搭建CMDB系统完整[1](用户登录)
- GD项目回顾总结之预热
- win2008文件服务器fs,文件服务器 fs
- 最大排列问题的算法实现(Python)究竟最后调换位置的有哪几个?
- SQL Server CLR 启用、部署
- ServiceMash服务网格--理解lstio/envoy
- 什么是真正的大数据营销
- Java开发常见英文单词(带音标翻译)
- 浅析汽车融资租赁业务模式
- leetcode链表总结
- 图像特征提取:Sobel边缘检测
- 【Matlab】矩阵
- CC00051.elasticsearch——|HadoopElasticSearch.V03|——|ELK.v03Logstash部署.V3|
- Jenkins与DevOps持续交付详解
- 拒酒词,好难找哟,留到有用
- K近邻算法(k-nearest neighbor,KNN)
- 虎书学习笔记2:图形学基础数学(向量、点积、叉积、)
- dom4j 学习 -- 封装dom4j工具类+如何使用dom4j解析
- @Validated和@Valid使用
热门文章
- java 8 stream中的Spliterator简介
- git gui怎么拉取项目代码_Git可视化极简易教程 —— Git GUI使用方法
- 分布式事务、cloud、boot、常规队列MQ、elk、kafuka
- java.awt.Graphics2D 生成图片--个人章的方法
- Effective Java之检查参数的有效性(三十八)
- Netty私有栈协议
- mac golang grpc proto pb文件生成go文件.md
- Codeup墓地-问题 A: 算法7-15:迪杰斯特拉最短路径算法
- 测试点解析:1049 数列的片段和_12行代码AC
- 你懂change buffer吗