成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術文章
文章詳情頁

JAVA模擬新增順序表及單鏈表

瀏覽:3日期:2022-08-29 14:58:41

最近在回顧大學學的數據結構,這里給大家用java模擬順序表和單鏈表的新增

1順序表新增

JAVA模擬新增順序表及單鏈表

/** * 順序表 * * @author cjd * */public class ArrayList { private Object[] elementData; // 底層是一個數組,目前還沒有確定長度 private int size; // 不是數組分配了幾個空間,而是元素的個數 public ArrayList() { this(4); } public ArrayList(int initialCapacity) { elementData = new Object[initialCapacity]; } // 返回線性表的大小,即數據元素的個數。 public int size() { return size; } // 返回線性表中序號為 i 的數據元素@Override public Object get(int i) { return elementData[i]; } // 將數據元素 e 插入到線性表中 i 號位置 public void add(int i, Object e) { // 擴容 elementData = Arrays.copyOf(elementData, elementData.length*2); if (size == elementData.length) {//數組滿了,就擴容 Object[] elementDatanew = new Object[elementData.length * 2];//新創建一個新的數組,長度是舊數組2倍 for (int j = 0; j < elementData.length; j++) {elementDatanew[j] = elementData[j];//將舊數組的數據拷貝到新數組 } elementData = elementDatanew;//讓elementData指向新數組 }//最后位后移 for(int j=size;j>i;j--){ elementData[j]=elementData[j-1]; }// 給數組賦值 elementData[i] = e; // 元素個數+1 size++; } // 將數據元素 e 插入到線性表末尾 public void add(Object e) { this.add(size,e);//最后位新增 } public String toString() { if (size == 0) { return '[]'; } StringBuilder stringBuilder = new StringBuilder('['); for (int i = 0; i < size; i++) { if (i == 0)stringBuilder.append('' + elementData[i]); elsestringBuilder.append(',' + elementData[i]); } stringBuilder.append(']'); return stringBuilder.toString(); }}

測試mian

public class test { public static void main(String[] args) { ArrayList list=new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); list.add(3,9); System.out.println('實現順序表新增'+list.toString()); }}

2單鏈表新增

JAVA模擬新增順序表及單鏈表

實體類

public class Node { Object data;//要存儲的數據 Node next; public Node(Object data, Node next) { super(); this.data = data; } public Node() { super(); } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; }}

方法

/** * 單鏈表表 * * @author cjd * */ public class SingleLinkedList { private Node head = new Node();//頭結點,不存儲數據,為了編程方便 private int size;//一共有幾個結點// 表的大小,即數據元素的個數。 public int size() { return size; } // 返回單鏈表中序號為 i 的數據元素 public Object get(int i) { //遍歷結點 Node p=head;//找到前一個結點,從head結點開始 for(int j=0;j<i;j++){p=p.next; } return p.data; } // 將數據元素 e 插入到單鏈表中 i 號位置 public void add(int i, Object e) { //遍歷結點 Node p=head;//找到前一個結點,從head結點開始 for(int j=0;j<i;j++){p=p.next;//移動指針到下一個結點 } //新創建一個結點 Node newNode = new Node(); newNode.data=e; newNode.next=p.next; p.next=newNode;//指明新結點的直接后繼結點 // 個數+1 size++; } // 將數據元素 e 插入到單鏈表末尾 public void add(Object e) { this.add(size,e);//最后位新增 }public String toString() { if (size == 0) {return '[]'; } Node p=head.next;//找到前一個結點,從head結點開始 StringBuilder stringBuilder= new StringBuilder('['); for (int i = 0; i < size; i++) {if (i == 0) stringBuilder.append('' + p.data);else stringBuilder.append(',' + p.data);//移動指針到下一個結點p=p.next; } stringBuilder.append(']'); return stringBuilder.toString(); } }

測試類

public class test { public static void main(String[] args) { SingleLinkedList singlist=new SingleLinkedList(); singlist.add(1); singlist.add(2); singlist.add(3); singlist.add(4); singlist.add(5); singlist.add(6); singlist.add(3,9); System.out.println('實現單鏈表新增'+singlist.toString()); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 免费国产在线观看 | 精品国产成人三级在线观看 | 狠狠色丁香久久婷婷综合_中 | 在线不卡一区二区三区日韩 | 亚洲国产成人精品一区91 | 久久国产网站 | 色噜噜亚洲男人的天堂 | 2022国内精品免费福利视频 | 正在播真实出轨炮对白 | 亚洲精品一区二区三区四 | 99精品视频免费观看 | 韩国一级特黄毛片大 | 性欧美一级毛片欧美片 | 女人18毛片a级毛片 女人aaaaa片一级一毛片 | 狠狠色综合久久丁香婷婷 | 亚洲爽妇网| 久久精品国产大片免费观看 | 91久久精品青青草原伊人 | 欧美高清一级 | 国产老鸭窝毛片一区二区 | 欧美亚洲在线视频 | 在线观看国产一区二区三区 | 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 国产日韩不卡免费精品视频 | 正在播放国产精品 | 一级毛片不卡片免费观看 | 久久国产经典视频 | 久久精品福利视频在线观看 | 中文字幕在线乱码不卡区区 | 精品日本亚洲一区二区三区 | 国产美女做爰免费视 | 免费毛片儿 | 中文在线亚洲 | 国产人做人爱免费视频 | 亚洲在线播放视频 | 偷拍自拍日韩 | 免费日韩在线视频 | 亚洲欧美视频在线播放 | 亚洲欧美日韩国产制服另类 | 国产成人网 | 国产精品成人免费视频 |