数组、链表的一些简单操作

//数组

package array;

public class shuzu {

    private static Integer size=0;

    private static Integer [] player=null;

//1):初始容量为5的线性列表,准备用来存储场上的5个球衣号码.

    private static void ininit(Integer number)

    {

        if(number<0)

        System.out.println("初始球队不能为负数");

        else player=new Integer[number];

        

    }

//2):安排5个球员上场:[11,22,33,44,55].

    private static void shangchang(Integer num)

    {

        if(num<0)

        {

            System.out.println("你的球衣有问题");

        }

        player[size++]=num;

    }

//3):查询指定位置的球员的球衣号码是多少.查询索引位置为2的球衣号码是:33.

    private static Integer search(Integer index)

    {

        if(index<0||player==null||size==0)

        {

            return -1;

        }

        else{

            return player[index];

        }

    }

//4):根据球衣号码查询该球员在场上的索引位置. 44球衣号的球员在场上的索引位置是:3.

    private static Integer chaxun(Integer num) {

        if(num<0)

            return -1;

        else

        {

            for(int i=0;i<size;i++)

                if(player[i]==num)

                    return i;

        }

        return -1;

    }

    

//5):替换场上索引位置为2的球员,替换之后该位置的球衣编号为333. 333把33替换了.

    private static void tihuan(Integer index,Integer num) {

        if(index<0||num<0)

        {

            System.out.println("不存在这样的数字");

        }

        else

        player[index]=num;

    }

//6):替换球衣号码为22的球员,替换之后为222.

    private static void qiunum(Integer num,Integer num1) {

        for(int i=0;i<size;i++)

            if(player[i]==num)

                player[i]=num1;

    }

//7):把场上索引位置为2的球衣罚下场(注意:罚下,没有补位.).

    private static void faxia(int index)

    {

        for(int i=index;i<size-1;i++)

            player[i]=player[i+1];

        player[size-1]=null;

        size--;

            

    }

//8):按照球员在场上的位置,打印出球衣号码,打印风格:[11,22,33,44,55].

private static void print()

{

    StringBuilder pBuilder=new StringBuilder(3*size+1);

    pBuilder.append("[");

    for(int i=0;i<size;i++)

    {

        pBuilder.append(player[i]);

        if(i<size-1)

            pBuilder.append(",");

        else pBuilder.append("]");

    }

    

    System.out.println(pBuilder.toString());

}

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        ininit(5);

        shangchang(11);

        shangchang(22);

        shangchang(33);

        shangchang(44);

        shangchang(55);

        print();

        System.out.println(search(2));

        System.out.println(chaxun(33));

        tihuan(2,333);

        print();

        qiunum(22,222);

        print();

        faxia(2);

        print();

    }

}

//双向链表

package array;

import java.rmi.server.ObjID;

public class link {

     private  node first;

     private  node last;

     private int size=0;

    

     public void addfirst(Object ele)

     {

         node node=new node(ele);

         if(size==0)

         {

             this.first=node;

             this.last=node;

         }else {

             node.next=this.first;

             this.first.prev=node;

             this.first=node;

         }

         size++;

     }

     public void addlast(Object ele)

     {

         node node=new node(ele);

         if(size==0)

         {

             this.first=node;

             this.last=node;

         }else {

             this.last.next=node;

             node.prev=this.last;

             this.last=node;

         }

         size++;

     }

     public void print()

     {

         StringBuilder p=new StringBuilder(2*size-1);

         p.append("[");

         node current=this.first;

         for(int i=0;i<size;i++)

         {

            

             p.append(current.ele);

             if(i!=size-1)

             {

                 p.append(",");

             }

             else {

                 p.append("]");

             }

             current=current.next;

         }

         System.out.println(p.toString());

     }

     public void delete(Object ele)

     {

         node current=this.first;

         for(int i=0;i<size;i++)

         {

             if(!current.ele.equals(ele))

             {

                 if(current.next==null)

                 {

                     return;

                 }

                 current=current.next;

             }

            

         }

         if(current==this.first)

         {

             this.first=current.next;

             this.first.prev=null;

         }

         else if(current==this.last)

         {

             this.last=current.prev;

             this.last.next=null;

         }

         else {

                  current.prev.next=current.next;

                  current.next.prev=current.prev;

              }

         size--;

     }

     class node

     {

         node prev;

         node next;

         Object ele;

         node(Object ele)

         {

           this.ele=ele;

          }

     }

  

}

package array;

public class zhufangfa {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        link pLink=new link();

        pLink.addfirst(1);

        pLink.addfirst(5);

        pLink.addfirst(6);

        pLink.addfirst(9);

        pLink.addlast(10);

        pLink.print();

        pLink.delete(10);

        pLink.print();

    }

}

猜你喜欢

转载自blog.csdn.net/zhouzhou_98/article/details/81357297