package 数据结构;
public class lianbiao {
public int data;
public lianbiao next;
public lianbiao(int k)
{
data=k;
next=null;
}
public lianbiao(){
this(0);
}
}
首先创建单链表的结点类。
package 数据结构;
//链表反转
class lianbiao2 extends lianbiao1{
public lianbiao2(){
super();
}
public lianbiao2(int n )
{
super(n);
}
public void fanzhuan()
{
lianbiao p=this.head;
lianbiao q=null;
lianbiao front=null;
while (p!=null){
q=p.next;
p.next=front;
front=p;
p=q;
}
this.head=front;
}
}
public class lianbiao1 {
protected lianbiao head;
//判断是否飞空
public lianbiao1() {
head = null;
}
//初始化
public lianbiao1(lianbiao h1) {
head = h1;
}
//建立单向链表
public lianbiao1(int n) {
lianbiao rear, q;
if (n > 0) {
int k = (int) (Math.random() * 100);
head = new lianbiao(k);
rear = head;
for (int i = 0; i < n; i++) {
k = (int) (Math.random() * 100);
q = new lianbiao(k);
rear.next = q;
rear = q;
}
}
}
//返回链表长度
public int length() {
int n = 0;
lianbiao p = head;
while (p != null) {
n++;
p = p.next;
}
return n;
}
public void output() {
this.output(head);
}
public void output(lianbiao p)
{
while (p!=null){
System.out.print(p.data);
p=p.next;
if (p!=null)
System.out.print("-->");}
System.out.println();
}
public static void main(String[] args) {
lianbiao1 h1=new lianbiao1(8);
h1.output();
lianbiao2 h2=new lianbiao2(8);
h2.output();
System.out.println("翻转");
h2.fanzhuan();
h2.output();
}
}
在第二个代码界面前面要加上import 数据结构.lianbiao;
idea这个软件直接给略掉了;
这样就实现了链表的创建以及翻转。