java中链表如何实现_java中链表功能的实现

今天我们学习了java的链表数据结构的实现,创建一个Node类,里面定义数据和一个Node类,然后是构造方法传值。

类里面定义4个方法,分别可以获取和设置类的Node类指向和数据。

然后再创建一个MyLinkList类来定义我自己的操作链表数据结构的方法,分别由增删查改的功能。

今天我只是实现了:1.获取链表长度 2.增加数据 3.查找节点 4.插入数据 5.修改数据 。

删除数据我还没有实现。

下面是我的代码:

package 我的链表;

public class MyLinkList {

//建立头结点

private Node head;

public int size(){

if(head == null){

return 0;

}

int size = 1;

Node node = head;

while(node.getNext() != null){

node = node.getNext();

size++;

}

return size;

}

//增加一个节点

public void add(String value){

Node newNode = new Node(value);

//如果头结点为空,直接添加到头结点

if(head == null){

head = newNode;

return ;

}

//否则添加到末尾

Node node = head;

while(node.getNext() != null){

node = node.getNext();

}

node.setNext(newNode);

}

//删除一个节点

public boolean delete(String value){

return false;

}

public boolean delete(int index){

return false;

}

//查找一个节点

public String getValue(int index){

if(index>size()||index<0){

try {

throw new Exception("下标越界");

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

int count = 0;

Node node = head;

while(count != index){

node = node.getNext();

count++;

}

return node.getValue();

}

//插入一个节点

public boolean insert(String value,int index){

if(index<0||index>size()){

try {

throw new Exception("输入下标越界");

} catch (Exception e) {

e.printStackTrace();

}

return false;

}

if(size() == 0){

head = new Node(value);

return true;

}else if(index == 0){

Node newNode = new Node(value);

Node node = head;

head = newNode;

head.setNext(node);

return true;

}

Node newNode = new Node(value);

Node node = head;

int count = 0;

while(count!=index-1){

node = node.getNext();

count++;

}

Node nodeNext = node.getNext();

node.setNext(newNode);

newNode.setNext(nodeNext);

return true;

}

//修改一个节点

public boolean update(String value,int index){

if(index>size()||index<0){

try {

throw new Exception("下标越界");

} catch (Exception e) {

e.printStackTrace();

}

}

int count = 0;

Node node = head;

while(count != index){

node = node.getNext();

count++;

}

node.setValue(value);

return true;

}

}这是我操作数据结构的代码。

然后我用数据测试结果如下图:

0818b9ca8b590ca3270a3433284dd417.png

今天暂时先搞这么多,洗洗睡。

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值