真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

java實現順序表增刪查改的方法-創(chuàng)新互聯

這篇文章給大家分享的是有關java實現順序表增刪查改的方法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯是一家集網站建設,雅安企業(yè)網站建設,雅安品牌網站建設,網站定制,雅安網站建設報價,網絡營銷,網絡優(yōu)化,雅安網站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網站。

什么是順序表?它是一種什么結構?

順序表是用一段物理地址連續(xù)的存儲單元依次存儲的線性結構,一般情況下采用數組存儲。在數組上完成數據的增刪查改。

順序表分為:

靜態(tài)順序表:使用定長數組存儲
動態(tài)順序表:使用動態(tài)開辟的數組存儲

靜態(tài)順序表適用于確定知道需要存多少數據的場景。

靜態(tài)順序表的定長數組導致N定大了,空間開多了浪費,開少了不夠用。

順序表實現

首先得給定一個順序表的長度,假如你要給列表插入元素,我們得先給0號位置插第一個數,如果0號位置沒有數,我們不能直接插在1號位置或是更后邊。如果0,1,2號位置都有數據,我們要往0號或1號位置插的話,這個時候得倒著遍歷順序表,讓前邊的數據往后挪一步。

java實現順序表增刪查改的方法

增:

public class SepList {
    public int[] val;//定義數據
    public int size;//存放一個數據則讓size++;

    //構造方法  順序表大小
    public SepList(){
        this.val = new int[5];
    }
    //也可以往進傳大小
    public SepList(int ret){
        this.val = new int[ret];
    }

    //增加數據 得傳要插入的位置與對應位置的數據 就比如0號位置插10
    public void addVal(int pos,int val){
        //首先判斷順序表是否滿
        if(this.val.length == this.size) return;
        //其次得看看給的位置是否合法  pos不能小于0 也不能比如0號位置有數據 1號位置沒有數據  然后插在2號或者更后邊的位置
        if(pos < 0 || pos > this.size) return;
        //如果0 1 2 3位置都有數據,要往1號位置插,得讓后邊的位置往后移一步
        for(int i = this.size; i >= pos; i--){
            this.val[i + 1] = this.val[i];
        }
        //此時在給定位置插數據
        this.val[pos] = val;
        this.size++;
    }

    //打印鏈表
    public void disPlay(){
        for(int i = 0; i < this.size; i++){
            System.out.print(this.val[i] + " ");
        }
        System.out.println();//打印完后空行
    }

    public static void main(String[] args) {
        SepList myList = new SepList();//默認用5個元素
//        SepList myList = new SepList(10);//這時候順序表的大小是10
        myList.addVal(0,10);//在0位置插入第一個數據
        myList.disPlay();//打印

    }
}

//執(zhí)行結果
10

如果要插入多個數據則調用方法即可
比如:

        myList.addVal(0,10);//第一次插入
        myList.addVal(1,20);
        myList.addVal(2,30);
        myList.addVal(3,40);
        myList.addVal(4,50);
        myList.disPlay();//打印
 
//執(zhí)行結果
10 20 30 40 50

此時順序表已滿 如果再往進插入呢

        myList.addVal(0,10);//第一次插入
        myList.addVal(1,20);
        myList.addVal(2,30);
        myList.addVal(3,40);
        myList.addVal(4,50);
        myList.addVal(5,60);
        myList.addVal(6,70);
        myList.disPlay();//打印

//執(zhí)行結果
10 20 30 40 50

為啥還是原來的,也沒有報錯。是因為進入add函數在判斷順序表為滿時,如果滿了,直接跳出到打印函數。并不會報錯。此時增函數就寫好了。



java實現順序表增刪查改的方法

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

  //查找某個元素對應的位置
  public int search(int toFind){
      for(int i = 0; i < this.size; i++){
          if(toFind == this.val[i]){
              return i;
          }
      }
      return -1;
  }

  //獲取pos位置的數據
  public int getPos(int pos){
      //首先判斷pos是否合法
      if(pos < 0 || pos > this.size) return -1;
      for(int i = 0; i < this.size; i++){
          if(this.val[i] == this.val[pos]){
              return this.val[pos];
          }
      }
      return -1;
  }

//調用方法 在這沒有粘貼主函數 你們一定要加上
      boolean flag1 = myList.contains(10);//判定元素
      boolean flag2 = myList.contains(60);
      System.out.println(flag1);
      System.out.println(flag2);
      int ret = myList.search(10);//查找
      int ret1 = myList.search(50);
      System.out.println(ret);
      System.out.println(ret1);
      int ret2 = myList.getPos(0);//獲取pos位置數據
      int ret3 = myList.getPos(4);
      System.out.println(ret2);
      System.out.println(ret3);

//執(zhí)行結果
true
false
0
4
10
50

直接找到pos位置對應的數據,將新數據賦給它就好了

java實現順序表增刪查改的方法

 //修改pos位置的值
    public void remove(int pos,int val){
        if(pos < 0 || pos > this.size){
            return;
        } else {
            this.val[pos] = val;
        }
    }

        myList.remove(2,3);//2號位置改為3
        myList.remove(3,4);//3號位置改為4
        myList.disPlay();//打印

//執(zhí)行結果
10 20 3 4 50

刪除指定的數據后,后邊的數據往前覆蓋就可以了

java實現順序表增刪查改的方法

 //刪除元素
    public void delVal(int key){
        int i,j = 0;
        //找到該位置
        for(i = 0; i < this.size; i++){
            if(this.val[i] == key){
                j = i;
                break;
            }
        }
        //刪除該位置數據,后邊數據往前覆蓋
        for(i = j; i < this.size - 1; i++){
            this.val[i] = this.val[i + 1];
        }
        this.size--;
    }

        myList.delVal(10);
        myList.delVal(50);
        myList.disPlay();//打印

//執(zhí)行結果
20 30 40

感謝各位的閱讀!關于“java實現順序表增刪查改的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


網頁標題:java實現順序表增刪查改的方法-創(chuàng)新互聯
標題網址:http://weahome.cn/article/dcphpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部