c语言 数组扩容,数组的扩容

用数组模拟栈

数组是固定大小的,不能改变长度,要想达到数组扩容的目的,就只能把当前数组复制到一个更长长度的数组中;

使用Arrays.copyOf()方法

源码如下:

public static short[] copyOf(short[] original, int newLength) {

short[] copy = new short[newLength];

System.arraycopy(original, 0, copy, 0,

Math.min(original.length, newLength));

return copy;

}

可以看出,内部调用了System.arraycopy()方法。

下面是用数组实现一个栈的代码:

class MinStack {

/** initialize your data structure here. */

int[] stack ;//数组

int defaultSize = 2;//默认大小

int realNumber;//存在的数量

public MinStack() {

this.stack = new int[defaultSize];

}

public void push(int x) {

if(realNumber == stack.length){

stack = Arrays.copyOf(stack,stack.length+defaultSize);

}

stack[realNumber++] = x;

}

public void pop() {

if(realNumber > 0){

realNumber--;

}

}

public int top() {

return stack[realNumber-1];

}

public int getMin() {

int min = stack[0];

for(int i = 0;i < realNumber;i++){

if(min > stack[i]){

min = stack[i];

}

}

return min;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu修改固定ip

1.vi /etc/network/interfasces,添加红框内的内容&#xff1a; 2.配置DNS, vi /etc/resolv.conf, 再该文件下添加&#xff1a; nameserver 192.168.1.1 nameserver 220.170.64.68 3.改完上面&#xff0c;如果重启的话&#xff0c;还是会变为原来的样子&#xff0c;所以要让其永…

折半插入排序c语言 csdn,排序算法实大.doc

排序算法实现大全后面的例程&#xff0c;都是对数组的排序&#xff0c;使用静态链表的也适用于链表的排序。为简单起见&#xff0c;只对单关键码排序&#xff0c;并且最后的结果都是从头到尾按升序排列。下面是统一的测试程序&#xff1a;#include #include using namespace st…

嵌入式开发-lesson9-顺序结构程序设计

Lesson9-顺序程序设计 一、常量与变量 1、常量 在程序运行过程中&#xff0c;其值不能改变的量&#xff0c;叫做常量。 f(x) 2x 1 常用的常量有以下几种类型&#xff1a; 1&#xff09;整型常量&#xff0c; 100&#xff0c; 0&#xff0c; -234 2&#xff09;实型常量…

odoo10学习笔记十四:mixin其他功能模块

原文地址&#xff1a;http://www.cnblogs.com/ygj0930/p/7153680.html odoo提供了许多有用的功能&#xff0c;比如&#xff1a;讨论、通知、网站等。我们可以在开发自己的模块时&#xff0c;引入这些功能。 一&#xff1a;消息系统 在模型中整合消息系统是很简单的&#xff0c;…

Git 历险记

Git历险记&#xff08;一&#xff09; 作为分布式版本控制系统的重要代表——Git已经为越来越多的人所认识&#xff0c;它相对于我们熟悉的CVS、SVN甚至同时分布式控制系统的Mercurial&#xff0c;有哪些优势和不足呢。这次InfoQ中文站有幸邀请到《Git Community Book》的译者刘…

怎样用c语言定义高幂整数,位操作运算的奇技淫巧!(附源码)

位运算百度百科如下:程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作位操作的优势位运算是一种底层的运算&#xff0c;往往比我们普通的运算要快上许多许多位运算是最高效而且占用内存最少的算法操作&#xff0c;执行效…

mysql--------命令来操作表

常用的通过mysql命令来更改表结构的一些sql语句&#xff0c;包括添加、删除、修改字段、调整字段顺序。 添加字段&#xff1a; alter table user_movement_log Add column GatewayId int not null default 0 AFTER Regionid; (在哪个字段后面添加) 删除字段&#xff1a; alter …

UIImageView01

//// ViewController.m// UIImageView01//// Created by cqy on 16/2/13.// Copyright © 2016年 程清杨. All rights reserved.//#import "ViewController.h"interface ViewController (){UIImageView *img;}endimplementation ViewController- (void)viewD…

android系统耗电量大待机,安卓手机耗电快有什么解决办法吗 安卓手机待机耗电量大怎么办...

虽然手机发展速度越来越快&#xff0c;技术也越来越高了&#xff0c;电池容量相对之前的900毫安1000毫安&#xff0c;都上升到了2000毫安到5000毫安&#xff0c;但是感觉待机的时间和正常的使用时间&#xff0c;却没有之前那么长了&#xff0c;难道手机电池容量是假的&#xff…

js 中null,undefined区别

首先摘自阮一峰先生的文章&#xff1a; 大多数计算机语言&#xff0c;有且仅有一个表示"无"的值&#xff0c;比如&#xff0c;C语言的NULL&#xff0c;Java语言的null&#xff0c;Python语言的None&#xff0c;Ruby语言的nil。 有点奇怪的是&#xff0c;JavaScript语…

集合中的遍历以及删除元素

package collection;import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;/*** 遍历集合元素* Collection提供了统一的变量集合元素的方式&#xff1b;迭代器* 方法为&#xff1a;* Iterator iterator&#xff08;&#xff09;* 该方法可以获…

Linux 关机命令详解 转自脚本之家

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init&#xff0c;它们都可以达到重启系统的目的&#xff0c;但每个命令的内部工作过程是不同的。 Linux centos重启命令&#xff1a; 1、reboot 2、shutdown -r now 立刻重启(root用户使用) 3、shutdown -r 10 过…

六款值得推荐的Android开源框架简介

六款值得推荐的Android开源框架简介 技术不再多&#xff0c;知道一些常用的、不错的就够了。下面就是最近整理的“性价比”比较高的Android开源框架&#xff0c;应该是相对实用的。 1、volley 项目地址 https://github.com/smanikandan14/Volley-demo JSON&#xff0c;图像等的…

android应用程序的组件,Android基础之应用程序组件

Android应用程序由若干个不同类型的组件组合而成&#xff0c;每一个组件具有其特定的安全保护设计方式&#xff0c;它们的安全直接影响到应用程序的安全。Android应用程序组件的主要类型有&#xff1a;活动(Activity),服务(Service)&#xff0c;广播接收者(Broadcast Receiver)…

数据库杂谈(一)——数据库基本概念

文章目录1 数据库基本概念1.1数据库和数据库管理系统1.2 数据库系统和文件系统1.3 数据模型1.4 数据库三级模式和两级独立性1.4.1 三级模式1.4.2 二级映像功能1.4.3 数据独立性1.5 数据库发展历史及分类1.6 数据库系统的组成和生命周期1.6.1 三个概念1.6.2 生命周期1.6.3 存储管…

【转】Java删除文件夹和文件

原文网址&#xff1a;http://kxjhlele.iteye.com/blog/323657 以前在javaeye看到过关于Java操作文件的一篇文章&#xff0c;写的很好&#xff0c;但找了半天也没找到&#xff0c;就把找到底几篇文章整理一下&#xff0c;做个总结&#xff0c;算是一个学习备份…… 1&#xff0c…

webapi返回字符串,解决自动加双引号或下划线的问题

返回类型改为HttpResponseMessage类型 [HttpGet] public HttpResponseMessage Test() {HttpResponseMessage responseMessage new HttpResponseMessage { Content new StringContent("你要返回的字符串", Encoding.GetEncoding("UTF-8"), "text/pla…

数据库杂谈(二)——数据模型

2 数据模型 摘要&#xff1a;数据模型&#xff08;Data Model&#xff09;是数据特征的抽象&#xff0c;它从抽象层次上描述了系统的静态特征、动态行为和约束条件&#xff0c;为数据库系统的信息表示与操作提供一个抽象的框架。数据模型所描述的内容有三部分&#xff0c;分别是…

android编译系统apk文件,VS2012中MonoForAndroid打包编译APK文件详细图文教程

本文用于介绍Visual Studio 2012中Xamarin Mono For Android 如何打包编译APK文件&#xff0c;从如何创建Android项目&#xff0c;到如何启动调试&#xff0c;都会逐个配图讲解。1 新建项目2 选择安卓3 选择安卓程序4 随便取名和设置存放路径5 确定1 创建完一个新的项目2 点击“…

判断程序是否已经运行

近段时间&#xff0c;需要写一个小功能&#xff0c;就是需要判断程序是否已经运行。某个程序安装后&#xff0c;也许被多个用户运行。那怎样判断当前用户已经运行了此程序了呢&#xff1f;下面是Insus.NET的做法&#xff0c;就是&#xff1a;《VB.NET WinForm获取运行程序用户名…