//输出一个换行,可以没有这一行
}
public boolean isInList(int
el){
//判断el是否存在于链表中
IntNode
temp;
//定义一个中间变量
for(temp=head;temp!=null
temp.info!=el;temp=temp.next);
//将el找出来,注意最后的分
return
temp!=null;
// 如果存在返回true,否则返回flase , 这两行代码很有思想
}
public void delete(int
el){
//删除链表中值为el的节点
if(head.info==el
head==tail){
//如果只有一个节点 , 并且节点的值为el
head=tail=null;
//删除这个节点
}else
if(head.info==el){
// 不止一个节点,而头结点的值就是el
head=head.next;
//删除头结点
}else{
IntNode
pred,temp;
//定义两个中间变量
for(pred=head,temp=head.next;temp.info!=el
temp.next!=null;pred=pred.next,temp=temp.next);
//跟上面的类似,自己琢磨吧 , 也是要注意最后的分号
pred.next=temp.next;
//将temp指向的节点删除 , 最好画一个链表的图,有助于理解
if(temp==tail){
//如果temp指向的节点是尾结点
tail=pred;
//将pred指向的节点设为尾结点 ,
}
}
}
//下面这个方法是在链表中值为el1的节点前面插入一个值为el2的节点 ,
//用类似的思想可以再写一个在链表中值为el1的节点后面插入一个值为el2的节点
public boolean insertToList(int el1,int
el2){
//定义一个插入节点的方法,插入成功返回true,否则返回false
IntNode
pred,temp;//定义两个中间变量
if(isEmpty()){
//判断链表是否为空
return
false;
//如果链表为空就直接返回false
}
if(head.info==el1
head==tail){
//如果链表中只有一个节点,并且这个节点的值是el1
head=new
IntNode(el2,head);
//新建立一个节点
return
true;
}else if(head.info==el1){
IntNode t=new
IntNode(el2);
t.next=head;
head=t;
return
true;
}else{
for(pred=head,temp=head.next;temp!=null
temp.info!=el1;pred=pred.next,temp=temp.next);
if(temp!=null){
IntNode
a=new IntNode(el2);
pred.next=a;
a.next=temp;
return
true;
}else{
System.out.println(el1+"
NOT EXEISTS!");
return
false;
}
}
}
3.下面是测试代码
public static void main(String[] args){
IntSLList test=new
IntSLList();
//test.addToHead(7);
test.addToTail(7);
System.out.println(test.insertToList(7,5));
test.printAll();
System.out.println(test.isInList(123));
}
}
java用node还是自己实现链表用node 。
javaListNode链表就是用Java自定义实现的链表结构 。
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。链表由一系列结点组成,结点可以在运行时动态生成 。
怎么样用JAVA实现链表//---greatwqs----
import java.io.*;
public class List {
// 用变量来实现表头
private Node Head = null;
private Node Tail = null;
private Node Pointer = null;
private int Length = 0;
/** 清空整个链表 */
public void deleteAll() {
Head = null;
Tail = null;
Pointer = null;
Length = 0;
}
/** 链表复位java链表代码实现,使第一个结点 成为当前结点 */
public void reset() {
Pointer = null;
}
/** 判断链表是否为空 */
public boolean isEmpty() {
推荐阅读
- cad.net打开文件的简单介绍
- 包含jquerycheckboxselect的词条
- 开心超人之海底大冒险游戏,开心超人之大冒险全集
- vb.net打包下载 vb打包成安装程序
- 企业如何做好网络内容营销,企业如何做好网络内容营销工作
- phpcmsv9数据库备份文件过大,数据库备份为什么那么小
- chatGPT对教育影响,ChatGPT对教育影响的国内外研究调查现状
- flutter多端统一,flutter yield
- sqlserver修改编码格式,sqlserver设置编码