日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java如何给顺序表赋值_JAVA模拟新增顺序表及单链表

發(fā)布時(shí)間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java如何给顺序表赋值_JAVA模拟新增顺序表及单链表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在回顧大學(xué)學(xué)的數(shù)據(jù)結(jié)構(gòu),這里給大家用javwww.cppcns.coma模擬順序表和單鏈表的新增

1順序表新增

/**

* 順序www.cppcns.com表

*

* @author cjd

*

*/

public class ArrayList {

private Object[] elementData; // 底層是一個(gè)數(shù)組,目前還沒有確定長(zhǎng)度

private int size; // 不是數(shù)組分配了幾個(gè)空間,而是元素的個(gè)數(shù)

public ArrayList() {

this(4);

}

public ArrayList(int initialCapacity) {

elementData = new Object[http://www.cppcns.cominitialCapacity];

}

// 返回線性表的大小,即數(shù)據(jù)元素的個(gè)數(shù)。

public int size() {

return size;

}

// 返回線性表中序號(hào)為 i 的數(shù)據(jù)元素@Override

public Object get(int i) {

return elementData[i];

}

// 將數(shù)據(jù)元素 e 插入到線性表中 i 號(hào)位置

public void add(int i, Object e) {

// 擴(kuò)容 elementData = Arrays.copyOf(elementData, elementData.length*2);

if (size == elementData.length) {//數(shù)組滿了,就擴(kuò)容

Object[] elementDatanew = new Object[elementData.length * 2];//新創(chuàng)建一個(gè)新的數(shù)組,長(zhǎng)度是舊數(shù)組2倍

for (int j = 0; j < elementData.length; j++) {

elementDatanew[j] = elementData[j];//將舊數(shù)組的數(shù)據(jù)拷貝到新數(shù)組

}

elementData = elementDatanew;//讓elementData指向新數(shù)組

}

//最后位后移

for(int j=size;j>i;j--){

elementData[j]=elementData[j-1];

}

// 給數(shù)組賦值

elementData[i] = e;

// 元素個(gè)數(shù)+1

size++;

}

// 將數(shù)據(jù)元素 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]);

else

stringBuilder.append("," + elementData[i]);

}

stringBuilder.append("]");

return stringBuilder.toString();

}

}

測(cè)試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("實(shí)現(xiàn)順序表新增"+list.toString());

}

}

2單鏈表新增

實(shí)體類

public class Node {

Object data;//要存儲(chǔ)的數(shù)據(jù)

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();//頭結(jié)點(diǎn),不存儲(chǔ)數(shù)據(jù),為了編程方便

private int size;//一共有幾個(gè)結(jié)點(diǎn)

// 表的大小,即數(shù)據(jù)元素的個(gè)數(shù)。

public int size() {

return size;

}

// 返回單鏈表中序號(hào)為 i 的數(shù)據(jù)元素

public Object get(int i) {

//遍歷結(jié)點(diǎn)

Node p=head;//找到前一個(gè)結(jié)點(diǎn),從head結(jié)點(diǎn)開始

for(int j=0;j

p=p.next;

}

return p.data;

}

// 將數(shù)據(jù)元素 e 插入到單鏈表中 i 號(hào)位置

public void add(int i, Object e) {

//遍歷結(jié)點(diǎn)

Node p=head;//找到前一個(gè)結(jié)點(diǎn),從head結(jié)點(diǎn)開始

for(int j=0;j

p=p.next;//移動(dòng)指針到下一個(gè)結(jié)點(diǎn)

}

//新創(chuàng)建一個(gè)結(jié)點(diǎn)

Node newNode = new Node();

newNode.data=e;

newNode.next=p.next;

p.next=newNode;//指明新結(jié)點(diǎn)的直接后繼結(jié)點(diǎn)

// 個(gè)數(shù)+1

size++;

}

// 將數(shù)據(jù)元素 e 插入到單鏈表末尾

public voiHOpCPsBd add(Object e) {

this.add(size,e);//最后位新增

}

public String toString() {

if (size == 0) {

return "[]";

}

Node p=head.next;//找到前一個(gè)結(jié)點(diǎn),從head結(jié)點(diǎn)開始

StringBuilder stringBuilder= new StringBuilder("[");

for (int i = 0; i < size; i++) {

if (i == 0)

stringBuilder.append("" + p.data);

else

stringBuilder.append("," + p.data);

//移動(dòng)

測(cè)試類

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("實(shí)現(xiàn)單鏈表新增"+singlist.toString());

}

}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

本文標(biāo)題: JAVA模擬新增順序表及單鏈表

本文地址: http://www.cppcns.com/ruanjian/java/324851.html

總結(jié)

以上是生活随笔為你收集整理的java如何给顺序表赋值_JAVA模拟新增顺序表及单链表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。