• java学习笔记之链表(约瑟夫问题)


    java与c#在比较字符串是否相等时不同:

    equals()方法

          String的equals()方法用于比较两个字符串是否相等。由于字符串是对象类型,所以不能简单的用“==”(双等号)判断两个字符串是否相等,而使用equals()方法比较两个对象的内容。

    约瑟夫问题:

    节点类定义:

    Node
    public class Node
    {
    public String Content;
    public Node Link;
    public Node() 
    {
        Content=null;
        Link=null;
    }
    public Node(String theContent)
    {
        Content=theContent;
        Link=null;    
    }
    }

    节点链接定义:

    NodeList
    public class NodeList
    {     
        public Node Current;
        public Node Header;
        public int Count=0;
        //初始化(一次添加数据)
        public void Create(String str)
        {
            if(Count==0)
            {
                Header=new Node(str);    
                Current=Header;
                Count++;
            }
            else
            {
                Current.Link=new Node(str);
                Current=Current.Link;
                Count++;            
            }        
            Current.Link=Header;
        }
        //删除指定数据
        public void Remove(String str)
        {
            Node Info=Header;
            Node temp=Header;
            Current=Header;
            Node Last=Header;
            for(int i=0;i<Count;i++)
            {
                if(i==0&&Current.Content.equals(str))
                {
                    //最后的没有指向Header
                    for(int j=0;j<Count-1;j++)
                    {
                        Last=Last.Link;
                    }
                    Header=temp.Link;
                    Last.Link=Header;
                    Info=Current;
                    Count--;
                }
                else
                {
                    
                if(Current.Content.equals(str))
                {
                    temp.Link=Current.Link;
                    Info=Current;
                    Count--;
                }
                else
                {
                    
                }
                temp=Current;
                Current=Current.Link;
                }
            }
            Current=Info;
        }
        
    }

    输出:

    Output
    public class Output 
    {
        public static void main(String[] agrs)
        {
            NodeList Lists=new NodeList();
            for(int i=0;i<6;i++)
            {
            Lists.Create("str"+i);
            }
            Lists.Current=Lists.Header;
            //下面进行环绕(三人死一个)
            for(int j=0;j<6;j++)
            {        
                
                if(j%3==1)
                {
                    
                    Lists.Remove(Lists.Current.Content);
            /*        System.out.print(Lists.Current.Content+"\n");    */
                    
                }
            
                Lists.Current=Lists.Current.Link;            
        }
    
            System.out.print("输出为:\n");
            Lists.Current=Lists.Header;
            for(int i=0;i<Lists.Count;i++)
            {
                if(Lists.Current!=null)
                {
                System.out.print(Lists.Current.Content+"\n");
                Lists.Current=Lists.Current.Link;
                }
            }
            
        }
    }
  • 相关阅读:
    PHP的文件下载
    ajax异步请求分页显示
    Linux的启动过程
    搭建nginx反向代理用做内网域名转发
    intellij idea 修改背景保护色&&修改字体&&快捷键大全
    IDEA入门级使用教程-
    http://blog.csdn.net/baidu_31657889/article/details/52315902
    JVM——Java虚拟机架构
    MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'(111) 的问题
    windows上 nginx 配置代理服务,配置多域名,以及最简单实现跨域配置
  • 原文地址:https://www.cnblogs.com/wangzhenghua/p/3026347.html
Copyright © 2020-2023  润新知