标签:
---恢复内容开始---
今天是2016年,5,12.java学习第九天!2016-05-12
今天主要是学习上次没有学完的,话不多说,上代码!
Node:
package com.cqvie.lianbiao;
public class Node {
public String data;
public Node next;
}
Link:
package com.cqvie.lianbiao;
public class Link {//带头节点的单向链表
private Node head=null;
public Link(){//构造方法
head=new Node();
head.next=null;
}
public void add(String data){//在末尾添加节点
Node a=head;
while(a.next!=null) a=a.next;//找尾节点
Node tmp=new Node();//新建节点tmp
tmp.data=data;
tmp.next=null;
a.next=tmp;//连接到尾节点之后
}
public void addAll(String data[]){
}
public int size(){//求链表的长度
Node a=head;
int n=0;
while(a.next!=null) {
n=n+1;
a=a.next;
}
return n;
}
public boolean isEmpty(){//判断链表是否为空
return head.next==null;
}
public boolean contains(String data){//判断链表中是否含有某节点
Node a=head;
while(a.next!=null){
a=a.next;
if(a.data.equals(data))
return true;
}
return false;
}
public void remove(String data){//删除一个节点
Node p=head;
Node q;
while(p.next!=null){
q=p;
p=p.next;
if(p.data.equals(data))
q.next=p.next;
}
}
public String[] toArray(){
return null;
}
public String get(int index){
return null;
}
public void clear(){
}
public String print(){//将链表所有节点连接成一个字符串并输出
Node a=head;
String s="";
while(a.next!=null){
a=a.next;
s+=a.data+"-->";
}
return s;
}
}
Test:
package com.cqvie.lianbiao;
public class Test {
public static void main(String[] args) {
Link link=new Link();
link.add("节点1");
link.add("节点2");
link.add("节点3");
System.out.println("这个链表是否为空:"+link.isEmpty());
System.out.println("这个链表的长度:"+link.size());
System.out.println("这个链表是:"+link.print());
System.out.println("这个链表中是否有:“节点3”:"+link.contains("节点3"));
link.remove("节点2");
System.out.println("删除节点2后:"+link.print());
}
}
输出结果:
这个链表是否为空:false
这个链表的长度:3
这个链表是:节点1-->节点2-->节点3-->
这个链表中是否有:“节点3”:true
删除节点2后:节点1-->节点3-->
今天的学习感觉到小吃力,主要是对JAVA的结构不熟,还有以前的C代码掌握不是很牢固,比如,删除节点的操作,在C中的代码没安全掌握,在这里换个结构,感觉很吃力。所以,基础很重要。这些还没写完,后天补五一假课,再战!
---恢复内容结束---
标签:
原文地址:http://www.cnblogs.com/hyyq/p/5487504.html