7.17号上午作业
package com.jx.practice;
public class Node {
public int data;//结点数据
public Node next;//后继结点
}
package com.jx.practice;
public class Test {
Node node = null;
public void addNode(int data) //增加一个结点
{
node.data = data;
node.next = new Node();
node = node.next;
}
public void deleteNode() //删除一个结点
{
node.next = node.next.next;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Node first = new Node(); //定义头结点
Test t = new Test();
int i;
t.node = new Node();
first = t.node;
//建立一个有10个结点的链表
for(i = 1;i<10;i++)
t.addNode(i);
t.node.data = i; //尾结点赋值
t.node.next = first; //令尾结点后继指向头结点
for(i = 1;i<=20;i++) //输出两次链表
{
System.out.print(t.node.data+" ");
t.node = t.node.next;
}
//当前链表为first的前驱,所以是从first开始数
int m = 5; //数到3的删除
int n;
while(t.node != t.node.next)
{
for(n = 1;n<m;n++)
{
t.node = t.node.next;
}
t.deleteNode();
}
System.out.println("最后一个输出的为"+t.node.data+"号结点");//输出最后一个结点的数值
}
}