zoukankan      html  css  js  c++  java
  • 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;
                }
            }
            
        }
    }
  • 相关阅读:
    SQL Server 2005 全文搜索包括改进和更新的干扰词文件FROM MS KB
    服务器内存选项From MS
    跳过事务复制中的错误
    WP7基础补充
    TaoBaoAPI简介3
    登录功能代码
    TaoBaoApI简介1
    TaoBaoAPI简介2
    WP7基础学习第十三讲
    WP7基础学习第十四讲
  • 原文地址:https://www.cnblogs.com/wangzhenghua/p/3026347.html
Copyright © 2011-2022 走看看