数据结构解析-数组

本文详细介绍了数组的概念,包括数组中的元素、与结构或类字段的区别。强调了数组元素存储在连续内存块中并使用索引访问的特点。同时,讨论了栈内存的工作原理,并给出了一维数组的声明、初始化和应用实例。文章通过一个Java代码示例展示了如何使用一维数组来模拟栈数据结构,包括压栈和弹栈操作。此外,还鼓励读者探索更多数组的实际应用场景。
摘要由CSDN通过智能技术生成

数组(Array)是有序的元素序列,若将有限个类型相同的变量的集合命名,那么这个名称为数组名,组成数组的各个变量称为数组的分量,也称为数组的元素,有时候也称为下标变量。用于区分数组的各个元素的数字编号为下标变量。用于区分数组的各个元素的数字编号为下标。这些有序的同类数据元素的集合称之为数组

数组中的元素

结构或者类中字段的区别

    数组中的所有元素都具有相同元素(这一点和结构或者类中字段不同)。数组中的元素储存在一个连续的内存块中,并通过索引来访问(这与结构和类中的字段不同)

  • 类型
    数组元素并非只是原数据,还可以是结构,枚举或类

结构形式

栈内存

    在方法中定义的一些基本类型的变量都在方法的栈内存中分配,当在一段代码中定义一个变量的时候,java就在栈中为这个变量分配内存空间,当超出变量的作用域之后,java会自动释放掉为该变量的所分配的内存空间

相关操作

数组

一维数组是最简单的数组,其逻辑结构是线性表。要使用一维数组,需要经过定义,初始化和应用等

    在数组的声明格式里,"数据类型"是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型,"数组名"是用来统一这些相同数据类型的名称,命名规则和变量的命名空间相同

    数组声明之后,接下来就是要为声明的数组进行分配内存空间,这时必须使用运算符new其中"个数"是告诉编译器,所声明的数组需要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间提供给该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

实际应用

可以使用一维数组模拟栈结构

j a v a 代 码 \color{#0000FF}{java代码} java

package dataStructure;

/**
 * Created by jdx on 2022/3/3 下午3:40
 * 模拟栈:使用一位数组模拟栈的数据结构,假设栈的默认容量为 6
 * 实现功能:
 * 1、可以存储 Java 中任意类型的数据
 * 2、提供 push 方法模拟压栈(栈满了,要有提示信息)
 * 3、提供 pop 方法模拟弹栈(栈空了,要有提示信息)
 * 4、设置栈帧,指向栈顶元素
 * 5、编写测试程序
 */
public class stack {
    //定义数组
    private Object[] element;
    //定义指针
    private int index;

    /*get set 方法*/

    public Object[] getElement() {
        return element;
    }

    public void setElement(Object[] element) {
        this.element = element;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    /*无参数构造*/
    public stack() {
        this.element = new Object[6];
        this.index = -1;
    }


    public stack(Object[] element, int index) {
        this.element = element;
    }

    /*压栈方法*/
    public void push(Object object) {
        if (this.index >= element.length - 1) {
            System.out.println("栈已经满了,压栈失败!!!!");
            return;
        }
        this.element[++index] = object;
        System.out.println("压入" + object + "元素成功" + "  下标为:" + index);
    }

    /*出栈方法*/
    public void pop() {
        if (this.index <= -1) {
            System.out.println("栈已空,弹栈失败!!!!");
            return;
        }
        System.out.println("弹出" + element[index] + "成功");
        this.element[index--] = null;
        System.out.println("指针指向:" + index);
    }
}

还有更多实际应用等待着各位小船夫们探索,我在这里就不过多的赘述了,扬帆吧,少年!!!🤜

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敏姐儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值