色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:2日期: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
相關文章:
主站蜘蛛池模板: 欧美视频在线观在线看 | 久久久久久久国产视频 | 亚洲 成人 欧美 自拍 | 成人免费一区二区三区视频软件 | 美女网站免费观看视频 | 日韩欧美在线一级一中文字暮 | 特及毛片 | 亚洲国产人成中文幕一级二级 | 成人午夜 | 热er99久久6国产精品免费 | 国产精品分类视频分类一区 | 欧美精品首页 | 在线播放高清国语自产拍免费 | 亚洲情a成黄在线观看动 | 欧美精品一区二区精品久久 | 4438全国最大成人网视频 | 国产在线高清不卡免费播放 | 99视频在线看 | 亚洲国产成人麻豆精品 | 欧美一区二区三区播放 | 18免费网站 | 一级黄色片aaa | 最新中文字幕乱码在线 | 免费一级特黄欧美大片勹久久网 | 欧美日a | 91香蕉成人免费高清网站 | 国产亚洲精品一区二区在线播放 | 免费看特黄特黄欧美大片 | 欧美人体在线 | 精品日韩一区二区三区视频 | 国产精品久久久久久久久免费观看 | 收集最新中文国产中文字幕 | 日本视频一区二区三区 | 香蕉一区二区三区观 | 国产一级毛片在线 | 俄罗斯一级黄色片 | 手机看片日本 | 波多野结衣在线视频免费观看 | 成熟女人免费一级毛片 | 精品毛片视频 | 美女视频大全视频a免费九 美女视频大全网站免费 |