最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?精煉解讀數(shù)據(jù)結(jié)構(gòu)的順序表如何操作

 更新時(shí)間:2022年03月14日 16:30:57   作者:K媾?  
程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示

前言

線(xiàn)性表(linear list)是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列。 線(xiàn)性表是一種在實(shí)際中廣泛使用的數(shù)據(jù)結(jié)構(gòu),常見(jiàn) 的線(xiàn)性表:順序表、鏈表、棧、隊(duì)列、字符串... 線(xiàn)性表在邏輯上是線(xiàn)性結(jié)構(gòu),也就說(shuō)是連續(xù)的一條直線(xiàn)。但是在物理結(jié)構(gòu)上并不一定是連續(xù)的,線(xiàn)性表在物理上存儲(chǔ) 時(shí),通常以數(shù)組和鏈?zhǔn)浇Y(jié)構(gòu)的形式存儲(chǔ)。

一、什么是順序表

順序表的概念及結(jié)構(gòu)

順序表是用一段物理地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)數(shù)據(jù)元素的線(xiàn)性結(jié)構(gòu),一般情況下采用數(shù)組存儲(chǔ)。在數(shù)組上完成數(shù)據(jù)的增刪查改 

 其實(shí)就是一個(gè)數(shù)組。那為什么還要寫(xiě)一個(gè)順序表,直接用數(shù)組不就好了?不一樣的,寫(xiě)到類(lèi)里面就可以面向?qū)ο蟆?/p>

創(chuàng)建順序表

public class MyArrayList {
   public int[] elem;//數(shù)組
   public int usedSize;//數(shù)據(jù)的有效個(gè)數(shù)
 
   public MyArrayList(){
       this.elem = new int[10];
   }
}

打印順序表

 打印結(jié)果:

因?yàn)閐isplay是根據(jù)usedsize打印的, usedsize沒(méi)賦值所以什么也不打印。

獲取順序表長(zhǎng)度

在pos位置新增元素

在順序表里面插入元素的時(shí)候所插入的位置的前面一定是存放了元素的,

畫(huà)圖分析:

代碼如下:

// 在 pos 位置新增元素
    public void add(int pos, int data) {
       if(pos < 0 || pos > usedSize){
           System.out.println("pos位置不合法");
           return;
       }
       if(isFull()){
           this.elem = Arrays.copyOf(this.elem,this.elem.length*2);
       }
        for (int i = this.usedSize-1; i >=pos ; i--) {
            this.elem[i+1] = this.elem[i];
        }
        this.elem[pos] = data;
        
        this.usedSize++;
        
    }
 
    public boolean isFull(){
       return this.usedSize == this.elem.length;
    }

打印結(jié)果:

判定是否包含某個(gè)元素

// 判定是否包含某個(gè)元素
    public boolean contains(int toFind) {
        for (int i = 0; i < this.usedSize; i++) {
            if (this.elem[i] == toFind) {
                return true;
            }
        }
        return false;
    }

打印結(jié)果:

查找某個(gè)元素對(duì)應(yīng)的位置

 // 查找某個(gè)元素對(duì)應(yīng)的位置
    public int search(int toFind) {
        for (int i = 0; i <this.usedSize ; i++) {
            if(this.elem[i] == toFind){
                return i;
            }
        }
       return -1; 
   }

打印結(jié)果:

獲取 pos 位置的元素

 // 獲取 pos 位置的元素
    public int getPos(int pos) {
       if(pos < 0 || pos > this.usedSize){
           System.out.println("pos位置不合法");
           return -1;//所以,這里說(shuō)明一下,業(yè)務(wù)上的處理,這里不考慮
       }
       if (isEmpty()){
           System.out.println("順序表為空");
           return -1;
       }
       return this.elem[pos];
 
    }
    public boolean isEmpty(){//判斷為不為空的情況下
       return this.usedSize == 0;
    }

打印結(jié)果:

給 pos 位置的元素設(shè)為 value

   // 給 pos 位置的元素設(shè)為 value
    public void setPos(int pos, int value) {
        if (pos < 0 || pos > this.usedSize) {
            System.out.println("pos位置不合法");
            return ;
        }
        if (isEmpty()) {
            System.out.println("順序表為空");
            return;
        }
         this.elem[pos] = value;
    }
    public boolean isEmpty() {//判斷為不為空的情況下
        return this.usedSize == 0;
    }

 打印結(jié)果:

刪除你想要?jiǎng)h除的元素

//刪除第一次出現(xiàn)的關(guān)鍵字key
public void remove(int toRemove) {
   if(isEmpty()){
       System.out.println("順序表為空");
       return;
   }
   int index = search(toRemove);//查找要?jiǎng)h除元素對(duì)應(yīng)的位置
   if(index == -1){
       System.out.println("沒(méi)有你要找到數(shù)字");
       return;
   }
 
    for (int i = index; i <this.usedSize-1 ; i++) {
        this.elem[i] = this.elem[i+1];
    }
    this.usedSize--;
 
}

打印結(jié)果:

總結(jié):

本文簡(jiǎn)單介紹了數(shù)據(jù)結(jié)構(gòu)的順序表,如何創(chuàng)建順序表,順序表上如何操作數(shù)據(jù)。通過(guò)簡(jiǎn)單例題的方式加深對(duì)順序表的理解。上述就是今天的內(nèi)容,有任何疑問(wèn)的話(huà)可以隨時(shí)私信我,文章哪里出現(xiàn)了問(wèn)題我都會(huì)積極改正,也希望大家能更快的掌握自己想要的知識(shí),讓我們一起加油?。。。。?/p>

到此這篇關(guān)于Java 精煉解讀數(shù)據(jù)結(jié)構(gòu)的順序表如何操作的文章就介紹到這了,更多相關(guān)Java 數(shù)據(jù)結(jié)構(gòu)的順序表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java ArrayList 實(shí)現(xiàn)實(shí)例講解

    Java ArrayList 實(shí)現(xiàn)實(shí)例講解

    ArrayList是基于數(shù)組實(shí)現(xiàn)的,是一個(gè)動(dòng)態(tài)數(shù)組,其容量能自動(dòng)增長(zhǎng),類(lèi)似于C語(yǔ)言中的動(dòng)態(tài)申請(qǐng)內(nèi)存,動(dòng)態(tài)增長(zhǎng)內(nèi)存。這篇文章主要介紹了java ArrayList 實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • spring自定義注解及使用方法詳細(xì)例子

    spring自定義注解及使用方法詳細(xì)例子

    這篇文章主要給大家介紹了關(guān)于spring自定義注解及使用方法的相關(guān)資料,Spring 是一個(gè)非常強(qiáng)大的框架,可以使用自定義注解來(lái)完成許多任務(wù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java中HashMap集合的常用方法詳解

    Java中HashMap集合的常用方法詳解

    本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于Java中HashMap集合的常用方法詳解,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。下面我們就來(lái)學(xué)習(xí)一下吧
    2021-11-11
  • java接口防重提交的處理方法

    java接口防重提交的處理方法

    本文主要介紹了java接口防重提交的處理方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • SpringBoot開(kāi)發(fā)存儲(chǔ)服務(wù)器實(shí)現(xiàn)過(guò)程詳解

    SpringBoot開(kāi)發(fā)存儲(chǔ)服務(wù)器實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要為大家介紹了SpringBoot開(kāi)發(fā)存儲(chǔ)服務(wù)器實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java Random.nextInt()方法原理解析

    Java Random.nextInt()方法原理解析

    這篇文章主要介紹了Java Random.nextInt()方法原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • springboot druid數(shù)據(jù)庫(kù)配置密碼加密的實(shí)現(xiàn)

    springboot druid數(shù)據(jù)庫(kù)配置密碼加密的實(shí)現(xiàn)

    Druid是阿里開(kāi)發(fā)的數(shù)據(jù)庫(kù)連接池,本文主要介紹了springboot druid數(shù)據(jù)庫(kù)配置密碼加密的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Java實(shí)現(xiàn)百度AOI數(shù)據(jù)的解析與轉(zhuǎn)換

    Java實(shí)現(xiàn)百度AOI數(shù)據(jù)的解析與轉(zhuǎn)換

    Java作為一種成熟且廣泛應(yīng)用的編程語(yǔ)言,具有跨平臺(tái)、面向?qū)ο蟆踩愿叩忍攸c(diǎn),非常適合用于開(kāi)發(fā)各種類(lèi)型的應(yīng)用程序,本文為大家整理了基于Java的AOI數(shù)據(jù)解析與轉(zhuǎn)換的實(shí)現(xiàn)方法,需要的可以參考下
    2025-02-02
  • Java Date類(lèi)常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java Date類(lèi)常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    在JDK1.0中,Date類(lèi)是唯一的一個(gè)代表時(shí)間的類(lèi),但是由于Date類(lèi)不便于實(shí)現(xiàn)國(guó)際化,所以從JDK1.1版本開(kāi)始,推薦使用Calendar類(lèi)進(jìn)行時(shí)間和日期處理。這里簡(jiǎn)單介紹一下Date類(lèi)的使用,需要的朋友可以參考下
    2017-05-05
  • Idea之沒(méi)有網(wǎng)絡(luò)的情況下創(chuàng)建SpringBoot項(xiàng)目的方法實(shí)現(xiàn)

    Idea之沒(méi)有網(wǎng)絡(luò)的情況下創(chuàng)建SpringBoot項(xiàng)目的方法實(shí)現(xiàn)

    本文主要介紹了Idea之沒(méi)有網(wǎng)絡(luò)的情況下創(chuàng)建SpringBoot項(xiàng)目的方法實(shí)現(xiàn),文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09

最新評(píng)論

澎湖县| 宾川县| 出国| 永福县| 西城区| 上高县| 怀宁县| 双牌县| 沅江市| 吴川市| 西充县| 济阳县| 岳西县| 保德县| 饶河县| 准格尔旗| 胶州市| 寿宁县| 宜州市| 沐川县| 丹阳市| 黑山县| 涿鹿县| 梁平县| 齐齐哈尔市| 玉门市| 唐河县| 剑川县| 平舆县| 正阳县| 富源县| 宜兴市| 桂阳县| 金乡县| 开阳县| 班戈县| 朝阳区| 滕州市| 鄂州市| 广汉市| 丹江口市|