第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組重寫(xiě)

数据结构研究的是什么?

数据结构研究的是数据如何在计算机中进行组织和存储,使我们可以高效的获取数据和修改数据。

数据结构的结构类型

线性结构

  • 数组

  • 队列

  • 链表

  • 哈希表

树结构

  • 二叉树

  • 二分搜索树

  • AVL

  • 红黑树

  • Treap

  • Splay

  • Trie

图结构

  • 邻间矩阵
  • 邻接表

学习目的

在之后工作中我们需要的应用场景的不同,灵活的选择最合适的数据结构,来解决相应的问题。

数据结构典型例子

  • 数据库
  • 操作系统
  • 文件压缩

数组重写

最终效果

定义数组的容量,实现对数组添加元素。

array类的代码实现。

public class array {
    private int[] data;  //数组
    private int size;    //个数   索引+1
    /**
     * 有参数的构造函数,传入数组的容量capacity构造array
     * @param capacity
     */
    public array(int capacity) {
        data = new int[capacity];
        size = 0;
    }
    /**
     * 无参数的构造函数,默认数组的容量capacity=10
     */
    public array(){
        this(10);
    }
    /**
     * 数组元素的个数
     * @return
     */
    public int getsize(){
        return size;
    }
    /**
     * 数组的容量
     * @return
     */
    public int getCapacity(){
        return data.length;
    }
    /**
     * 数组是否为空
     * @return
     */
    public boolean isEmpty(){
        return size == 0;
    }

    /**
     * 向数组的所有元素后添加一个元素
     * @param e
     */
    public void addLast(int e){
        add(size,e);
    }
    public void addFirst(int e){
        add(0,e);

    }
    /**
     * 向某一个索引的位置插入一个元素,之后所有的元素都向后移动一个位置  注意:是从后向前挪动,因为从前向后挪动会覆盖后一位索引的元素
     * @param index
     * @param e
     */
    public void add(int index,int e){
        if(size == data.length){
            throw new IllegalArgumentException("add is already full");
        }
        if(index < 0 || index>size){
            throw new IllegalArgumentException("add failed request index >=0");
        }
        for(int i = size-1;i>=index;i--){
            data[i+1] = data[i];
        }
        data[index] = e;
        size ++;
    }

    /**
     * 获取index索引位置的元素
     * @param index
     * @return
     */
    int get(int index){
        if(index< 0 || index>=size){
            throw new IllegalArgumentException("get failed , index is illegal");
        }
        return data[index];
    }
    void set(int index,int e){
        if(index< 0 || index>=size){
            throw new IllegalArgumentException("get failed , index is illegal");
        }
        data[index] = e;
    }


    /**
     * 重写输出
     * @return
     */
    @Override
    public String toString() {
        StringBuilder res = new StringBuilder();
        res.append(String.format("Array: size = %d, capacity = %d\n",size,data.length));
        res.append('[');
        for(int i=0;i<size;i++){
            res.append(data[i]);
            if(i != size-1) {
                res.append(", ");
            }
        }
        res.append(']');
        return res.toString();
    }
}

主方法实现。

public class Main {
    public static void main(String[] args) {
        array arr = new array(20);
        for(int i=0;i<10;i++){
            arr.addLast(i);
        }
        System.out.println(arr);
        arr.add(1,100);
        System.out.println(arr);
        arr.addFirst(-1);
        System.out.println(arr);
    }
}

实现效果图。

图片描述

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消