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+"号结点");//输出最后一个结点的数值
    }

}

7.17号上午作业