数据结构学习--自定义数组

代码如下:

 1 package DataStruct;
 2
 3 public class Array {
 4
 5     private int[] data;
 6     private int[] size;
 7
 8     public Array(int capacity) {
 9         data = new int[capacity]
10         size = 0
11     }
12
13
14     //构造函数,传入数组的容量capacity构造Array
15     public Array() {
16         this(10);
17     }
18
19     //无参数的构造函数,默认数组的容量是capacity=0
20     public int getSize() {
21         return size;
22     }
23
24     //获取数据中的元素个数
25     public int getCapatity() {
26         return data.length;
27     }
28
29     //获取数据的容量
30     public boolean isEmpty() {
31         return size == 0;
32     }
33
34 }

原文地址:https://www.cnblogs.com/renran/p/9784812.html

时间: 2024-11-09 17:02:29

数据结构学习--自定义数组的相关文章

C#学习之自定义数组及其排序

在C#中对数组的定义比较灵活.这里着重说一下自定义数组和Array类的排序. 在Array类中通过属性Length就可以获取整个数组中数据的数量,可以通过foreach迭代数组. 使用Rank属性可以获取数组的维数,通过属性LongLength也可获取数组中数据的数量,但是基本上不用. 它是当数组中放置的数据量超出了整数的范围时才用. Array类中排序的方法比较简单,对于string 和 Int 类型直接用Array.Sort()就可以. 但是对于自定义的数组就需要在类中写出Array.Sor

自定义数组列表和队列

最近一直在研究数据结构与算法,涉及到自定义数组和队列,感觉对JDK源代码的底层功能实现学习有一定的帮助,故作此总结,以供参考. ps:JDK的源代码更加复杂,我的自定义数组列表和队列只是一些简单的逻辑实现. 1.自定义数组列表(MyArrayList.java) package com.BlueStarWei.arrayList; /** * * show all fields and method,please click "ctrl + o" * * * 开发过程遇到的问题: *

从零开始实现数据结构(一) 动态数组

从零开始实现数据结构(一) 动态数组 动态数组是所有数据结构中最简单的一种,甚至在很多的语言中,数组本身就是可以不定长的.因为在学习c++的时候,使用动态数组的各种操作都不是很方便(数据结构的学习最好还是c或c++,基础打好了其他的语言数据结构就很简单).所以开始学习如何去实现一个像STL中的vector一样的动态数组. 创建数组基类CArray 因为后面还准备写一个有序数组,所以这里使用一个CArray类,把数组的各种基本特性先创建好.后面需要写什么数组,就可以写它下面的子类,来完成特殊的功能

小猪的数据结构学习笔记(四)

小猪的数据结构学习笔记(四) 线性表之静态链表 --转载请注明出处:coder-pig 本章引言: 在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于 我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题, 如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下! 没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式 来实现单链表的效果!也就是今天要讲的--静态链表! 当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了

小猪的数据结构学习笔记(二)

小猪的数据结构学习笔记(二) 线性表中的顺序表 本节引言: 在上个章节中,我们对数据结构与算法的相关概念进行了了解,知道数据结构的 逻辑结构与物理结构的区别,算法的特性以及设计要求;还学了如何去衡量一个算法 的好坏,以及时间复杂度的计算!在本节中我们将接触第一个数据结构--线性表; 而线性表有两种表现形式,分别是顺序表和链表;学好这一章很重要,是学习后面的基石; 这一节我们会重点学习下顺序表,在这里给大家一个忠告,学编程切忌眼高手低,看懂不代表自己 写得出来,给出的实现代码,自己要理解思路,自己

数据结构学习之二叉排序树

介绍:二叉排序树是以一定的规则排列树中元素,因而可以进行快速的排序和查询的树状数据结构,一般规则是:对于树中任意一个节点,左孩子严格小于根,根严格小于右孩子,有点像大根堆.(只是大根堆中左右孩子关系并不确定,且和根的关系是统一的,而且有上浮和下沉操作使得大根堆总是一棵完全二叉树,其不断弹出堆顶形成有序列的过程叫做堆排序.虽然二叉排序树中也有旋转操作使得树尽量平衡,但是由于数值大小分明的左右孩子,在进行平衡操作时远不如大根堆方便快捷.)对于一棵已经构造完成的排序二叉树,它的中序遍历序列即为升序排列

数据结构学习系列之线性表(三)

前言数据结构学习,发现坚持下来比较难,本次学习与上次学习间隔了几个月,不管怎样还是要强迫自己坚持下来. 静态链表 用数组模拟链式结构的线性表,对于没有指针的编程语言,只能使用这种方式来模拟.这是大师们想出来的实现方法,体会大师们的编程思路,站在大师们的肩膀上解决一个又一个的难题.每个节点包含一个游标(数组数字索引),用于指向下个节点,所以静态链表也称为游标链表.规定数组第一个元素为备用链表(未被使用的数组游标,静态链表初始化时,会生成备用链表)的头节点,数组最后一个元素为链表的头节点.当需要插入

小猪的数据结构学习笔记(五)

小猪的数据结构学习笔记(五) 线性表之--循环链表                           --转载请注明出处:coder-pig 循环链表知识点归纳: 相关代码实现: ①判断是否为空表: ②单循环链表的存储结构 其实和单链表的结构是一样的! /*定义循环链表的存储结构*/ typedef struct Cir_List { int data; struct Cir_List *next; }Lnode; ③初始化循环单链表 代码如下: //1.循环链表的初始化 //表示一个元素,如

数据结构学习笔记之栈

栈(stack)  是限定仅在表尾进行插入或删除操作的线性表.因此,对栈来说,表尾端有其特殊含义,称为栈项(top),相应地,表头端称为栈底(bottom).不含元素的空表称为空栈. 栈有两种存储表示方法:顺序栈和链栈.顺序栈,即栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置.通常的习惯做法是以top=0表示空栈,鉴于C语言中数组的下标约定从0开始,则当以C作描述语言时,如此设定会带来很大不便:另一方面,由于栈在使用过程