gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

實例詳解Java順序表和鏈表

本篇文章給大家帶來了關于java的相關知識,其中主要介紹了關于順序表和鏈表的相關內容,順序表就是一個數組,是用一段物理地址連續的存儲單元依次存儲數據元素的線性結構,下面一起來看一下,希望對大家有幫助。

實例詳解Java順序表和鏈表

程序員必備接口測試調試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設計、調試、文檔、自動化測試工具
后端、前端、測試,同時在線協作,內容實時同步

推薦學習:《java視頻教程》

1. 線性表

線性表(linear list)是n個具有相同特性的數據元素的有限序列。 線性表是一種在實際中廣泛使用的數據結構,常見的線性表:順序表、鏈表、棧、隊列、字符串…

線性表在邏輯上是線性結構,也就說是連續的一條直線。但是在物理結構上并不一定是連續的,線性表在物理上存儲時,通常以數組和鏈式結構的形式存儲。

實例詳解Java順序表和鏈表

2. 順序表

其實就是一個數組。【增刪查改】那為什么還有寫一個順序表,直接用數組就好了嘛?不一樣,寫到類里面 將來就可以 面向對象了。

2.1 概念及結構

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

順序表一般可以分為:

  • 靜態順序表:使用定長數組存儲。
  • 動態順序表:使用動態開辟的數組存儲。

靜態順序表適用于確定知道需要存多少數據的場景.

靜態順序表的定長數組導致N定大了,空間開多了浪費,開少了不夠用.

相比之下動態順序表更靈活, 根據需要動態的分配空間大小.

2.2 接口實現

我們來實現一個動態順序表. 以下是需要支持的接口.

實例詳解Java順序表和鏈表

這里我們挨個拆解出來:

public class MyArrayList {      public int[] elem;     public int usedSize;//有效的數據個數      public MyArrayList() {         this.elem = new int[10];     }     // 打印順序表public void display() {          }     System.out.println();}// 獲取順序表長度public int size() {     return 0;}// 在 pos 位置新增元素public void add(int pos, int data) {}// 判定是否包含某個元素public boolean contains(int toFind) {     return true;}// 查找某個元素對應的位置public int search(int toFind) {     return -1;}// 獲取 pos 位置的元素public int getPos(int pos) {     return -1;}// 給 pos 位置的元素設為 valuepublic void setPos(int pos, int value) {}//刪除第一次出現的關鍵字keypublic void remove(int toRemove) {}// 清空順序表public void clear() {}}
登錄后復制

這是我們順序表的基本結構。下面我們就把順序表的功能一個一個拆解出來:

打印數據表:

public void display() {     for (int i = 0; i < this.usedSize; i++) {         System.out.print(this.elem[i] + " ");     }     System.out.println();}
登錄后復制

獲取順序表長度:

public int size() {     return this.usedSize;}
登錄后復制

在 pos 位置新增元素:

public void add(int pos, int data) {     if(pos < 0 || pos > this.usedSize) {         System.out.println("pos 位置不合法");         return;     }     if(isFull()){         this.elem = Arrays.copyOf(this.elem,2*this.elem.length);     }     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;}
登錄后復制

判斷是否包含某個元素:

public boolean contains(int toFind) {     for (int i = 0; i < this.usedSize; i++) {         if (this.elem[i] == toFind) {             return true;         }     }     return false;}
登錄后復制

查找某個元素對應的位置:

public int search(int toFind) {     for (int i = 0; i < this.usedSize; i++) {         if (this.elem[i] == toFind) {             return i;         }     }     return -1;}
登錄后復制

獲取 pos 位置的元素:

public int getPos(int pos) {     if (pos < 0 || pos >= this.usedSize){         System.out.println("pos 位置不合法");         return -1;//所以 這里說明一下,業務上的處理,這里不考慮     }     if(isEmpty()) {         System.out.println("順序表為空!");         return -1;     }     return this.elem[pos];}//判斷數組鏈表是否為空public boolean isEmpty() {     return this.usedSize == 0;}
登錄后復制

給 pos 位置的元素設為 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;}
登錄后復制

刪除第一次出現的關鍵字key:

public void remove(int toRemove) {     if(isEmpty()) {         System.out.println("順序表為空!");         return;     }     int index = search(toRemove);//index記錄刪除元素的位置     if(index == -1) {         System.out.println("沒有你要刪除的數字!");     }     for (int i = index; i < this.usedSize - 1; i++) {         this.elem[i] = this.elem[i + 1];     }     this.usedSize--;     //this.elem[usedSize] = null;引用數組必須這樣做才可以刪除}
登錄后復制

清空順序表:

public void clear() {     this.usedSize = 0;}
登錄后復制

2.3 順序表的問題及思考

  1. 順序表中間/頭部的插入刪除,時間復雜度為O(N)

  2. 增容需要申請新空間,拷貝數據,釋放舊空間。會有不小的消耗。

  3. 增容一般是呈2倍的增長,勢必會有一定的空間浪費。例如當前容量為100,滿了以后增容到200,我們再繼續插入了5個數據,后面沒有數據插入了,那么就浪費了95個數據空間。

思考: 如何解決以上問題呢?下面給出了鏈表的結構來看看。

3. 鏈表

3.1 鏈表的概念及結構

鏈表是一種物理存儲結構上非連續存儲結構,數據元素的邏輯順序是通過鏈表中的引用鏈接次序實現的 。

實例詳解Java順序表和鏈表

實際中鏈表的結構非常多樣,如果按一般來分的話就是四種:

  • 單向鏈表

  • 雙向鏈表

  • 循環鏈表

  • 雙向循環鏈表

如果細分的話就有以下情況組合起來就有8種鏈表結構:

  • 單向、雙向
  • 帶頭、不帶頭
  • 循環、非循環

這八種分別為:

  • 單向 帶頭 循環

  • 單向 不帶頭 循環

  • 單向 帶頭 非循環

  • 單向 不帶頭 非循環

  • 雙向 帶頭 循環

  • 雙向 不帶頭 循環

  • 雙向 帶頭 非循環

  • 雙向 不帶頭 非循環

注:上述加粗是我們重點需要學習的!!!

實例詳解Java順序表和鏈表實例詳解Java順序表和鏈表實例詳解Java順序表和鏈表

雖然有這么多的鏈表的結構,但是我們重點掌握兩種:

  • 無頭單向非循環鏈表:結構簡單,一般不會單獨用來存數據。實際中
贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
www.久久com| 国产精品自拍合集| 日韩 欧美 高清| 阿v天堂2017| 欧美久久在线观看| 日韩精品一区二区在线视频| 亚洲自拍偷拍一区二区三区| 在线观看三级网站| 久艹在线免费观看| 日本一本中文字幕| 成人免费毛片网| 91淫黄看大片| 深爱五月综合网| 欧美日韩dvd| 精品中文字幕av| 国产区二区三区| 三日本三级少妇三级99| 老汉色影院首页| 日本中文字幕亚洲| 免费午夜视频在线观看| 加勒比av中文字幕| 隔壁人妻偷人bd中字| av在线播放亚洲| 高清av免费看| www.成年人视频| 大香煮伊手机一区| 一级一片免费播放| 777精品久无码人妻蜜桃| 午夜精品久久久内射近拍高清| 污污的网站18| 成人免费性视频| mm131亚洲精品| 波多野结衣综合网| 992kp免费看片| 国产素人在线观看| 久久精品亚洲天堂| 中文字幕日本最新乱码视频| 国产一级片中文字幕| 日韩网址在线观看| 天天综合五月天| 一本色道久久亚洲综合精品蜜桃| 波多野结衣 作品| 香蕉视频999| 欧在线一二三四区| 美脚丝袜脚交一区二区| 91香蕉国产线在线观看| 玩弄japan白嫩少妇hd| 欧洲精品在线播放| 午夜在线视频免费观看| 激情五月婷婷久久| 日本精品免费在线观看| 亚洲天堂第一区| 免费黄频在线观看| www.色就是色.com| 99视频在线视频| 99视频精品免费| 超碰影院在线观看| 亚洲五月天综合| 少妇人妻互换不带套| 好吊妞无缓冲视频观看| 男人添女人荫蒂免费视频| 一本大道东京热无码aⅴ| 性久久久久久久久久久久久久| 亚洲天堂网一区| 中文字幕第38页| 污污的视频免费| 亚洲第一成肉网| 日韩视频在线观看视频| 香蕉视频xxxx| 欧美a级黄色大片| 国产片侵犯亲女视频播放| 中国老女人av| 久久久久久www| 又粗又黑又大的吊av| 精品中文字幕av| 伊人网在线综合| 水蜜桃在线免费观看| 日韩av新片网| 99爱视频在线| 日本不卡一区二区在线观看| 激情文学亚洲色图| 国产高清不卡无码视频| 97在线国产视频| 日韩免费高清在线| 中文字幕一区二区在线观看视频| 2025韩国大尺度电影| 国内精品视频一区二区三区| 欧美韩国日本在线| 五月天丁香花婷婷| 蜜臀av色欲a片无码精品一区| 成人在线免费观看av| 亚洲成人天堂网| 国产肉体ⅹxxx137大胆| aaaaaa亚洲| 色撸撸在线观看| 97成人在线免费视频| 制服丝袜中文字幕第一页 | 亚洲自拍第三页| 国产特级淫片高清视频| 亚洲36d大奶网| 婷婷五月综合缴情在线视频| 能在线观看的av网站| www国产免费| 国产视频手机在线播放| 男女裸体影院高潮| jizz大全欧美jizzcom| 国产又粗又猛又爽又黄的网站 | 亚洲天堂2018av| 国产伦精品一区二区三区四区视频_| 亚洲 激情 在线| 精品欧美一区免费观看α√| 国产精品嫩草影视| 午夜免费高清视频| 欧美精品99久久| 91午夜在线观看| 国产奶头好大揉着好爽视频| 制服丝袜综合网| 日本美女高潮视频| 激情综合网婷婷| 熟女少妇在线视频播放| 97在线免费视频观看| 国产又大又长又粗又黄| 亚洲精品综合在线观看| 另类小说色综合| 欧美精品无码一区二区三区| 97国产在线播放| 夫妻免费无码v看片| 97超碰在线视| 69sex久久精品国产麻豆| 国产精品一二三在线观看| 超碰在线免费av| 强伦女教师2:伦理在线观看| 三年中文高清在线观看第6集| 艹b视频在线观看| 久热精品在线播放| 日韩va在线观看| 久久久精品视频国产| 国产卡一卡二在线| www.好吊操| 鲁一鲁一鲁一鲁一澡| 久久久精品在线视频| 毛葺葺老太做受视频| 欧美成人黄色网址| 三日本三级少妇三级99| 强开小嫩苞一区二区三区网站| 国产免费一区二区三区四在线播放| 午夜影院免费观看视频| 视色,视色影院,视色影库,视色网| 粉嫩av一区二区三区天美传媒| 欧美少妇一区二区三区| 日韩a∨精品日韩在线观看| 无码人妻丰满熟妇区毛片| 日本不卡一区在线| 999久久欧美人妻一区二区| 波多野结衣乳巨码无在线| 少妇一级淫免费放| 在线观看视频黄色| 国产男女无遮挡| 91香蕉视频在线观看视频| 国产高清不卡无码视频| 男女视频一区二区三区| 国产高清精品软男同| 国产精品va无码一区二区| 中文字幕66页| 日韩av综合在线观看| 国产精品探花在线播放| 欧美 日韩 国产 高清| 国产三级精品三级在线| 你懂的av在线| 日韩精品一区二区三区电影| 日韩 欧美 高清| 草b视频在线观看| 天堂网成人在线| 久久午夜夜伦鲁鲁一区二区| 黄色一级大片免费| 天天操精品视频| jizz欧美激情18| 1024av视频| 无码人妻精品一区二区蜜桃网站| 亚洲一二三区av| 日本a视频在线观看| 欧美一级黄色录像片| 777视频在线| 久久精品免费网站| 欧美性大战久久久久xxx | 久久免费一级片| 樱空桃在线播放| 韩国一区二区在线播放| 国产成人黄色网址| 精品少妇无遮挡毛片| 成人久久久久久久久| aa视频在线播放| 人妻av中文系列| 欧美综合在线播放| 国产乱子伦农村叉叉叉| jizzjizzxxxx| 无码内射中文字幕岛国片| 黄色动漫在线免费看| 逼特逼视频在线| 日本久久精品一区二区|