• 20175221 曾祥杰 数据结构-单链表(选做)


    题目要求:

    参见附件,补充MyList.java的内容,提交运行结果截图(全屏)
    课下推送代码到码云


    public class MyList {
    public static void main(String [] args) {
    //选用合适的构造方法,用你学号前后各两名同学的学号创建四个结点


    //把上面四个节点连成一个没有头结点的单链表

    //遍历单链表,打印每个结点的

    //把你自己插入到合适的位置(学号升序)

    //遍历单链表,打印每个结点的

    //从链表中删除自己

    //遍历单链表,打印每个结点的
    }
    }


    public class Node<T>                             //单链表结点类,T指定结点的元素类型
    {
        public T data;                               //数据域,存储数据元素
        public Node<T> next;                         //地址域,引用后继结点

        public Node(T data, Node<T> next)            //构造结点,data指定数据元素,next指定后继结点
        {
            this.data = data;                        //T对象引用赋值
            this.next = next;                        //Node<T>对象引用赋值
        }
        public Node()
        {
            this(null, null);
        }
        public String toString()                     //返回结点数据域的描述字符串
        {
            return this.data.toString();
        }
    }

    题目分析:

    •  MyList 中添加节点 list.add ,遍历输出集合中的值 Iterator<String> iter=list.iterator(); 都是课本上有介绍的基本操作。
    • 需要思考的是,如何把我的学号插入到合适的位置,题目中已有提示使用学号升序排列,那我们就可以调用“数据结构-排序(选做)”中提到的 Collection.sort(List) 或者 Collection.sort(List, Compatator) 来完成升序排列。
    • 最后 list.remove 删除自己学号,再打印出链表即可

    代码如下:

     
    import java.util.*;
    public class MyList {
        public static void main(String [] args) {
            //选用合适的构造方法,用你学号前后各两名同学的学号创建四个结点
            List<String> list=new LinkedList<String>();
            list.add("20175219");
            list.add("20175220");
            list.add("20175222");
            list.add("20175223");
            System.out.println("初始链表:");
            //把上面四个节点连成一个没有头结点的单链表
            Iterator<String> iter=list.iterator();
            while(iter.hasNext()){
                String danlianbiao=iter.next();
                System.out.println(danlianbiao);
            }
            //遍历单链表,打印每个结点的
            list.add("20175221");
            //把你自己插入到合适的位置(学号升序)
            System.out.println("插入学号后排序,打印链表:");
            Collections.sort(list);
            iter=list.iterator();
            while(iter.hasNext()){
                String danlianbiao=iter.next();
                System.out.println(danlianbiao);
            }
            //遍历单链表,打印每个结点的
            list.remove("20175221");
            //从链表中删除自己
            System.out.println("删除学号后,打印链表:");
            iter=list.iterator();
            while(iter.hasNext()){
                String danlianbiao=iter.next();
                System.out.println(danlianbiao);
            }
            //遍历单链表,打印每个结点的
        }
    }

    测试截图:

    码云链接

  • 相关阅读:
    多线程 NSThread GCD
    UICollectionView 集合视图用法,自定义Cell
    简单的注册 登录
    数据库sqlite的使用
    沙盒机制 归档 反归档
    图片异步加载 ,KVO
    iOS开发系列--通知与消息机制
    制作iOS Ad-Hoc测试应用
    NT_iOS笔记—判断iPhone6
    iOS开发多线程篇—单例模式(ARC)
  • 原文地址:https://www.cnblogs.com/zxja/p/10816592.html
Copyright © 2020-2023  润新知