• CS61b homework3 打卡


    part1:代码:注意最后不能直接写成ints=template,因为ints是在method中新建立的指向传入数组的引用,ints=template只是改变了ints的指向,而对传入的数组未改变,所以应该用循环对ints数组逐一赋值(这一问题lecture里面记得有专门讲过,看的时候没太注意听,编程的时候才发现都是坑啊2333)。

    public static void smoosh(int[] ints) {
                int[]template=new int[ints.length];
                Arrays.fill(template, -1);
                int num=1;
                template[0]=ints[0];
                for(int i=1;i<ints.length;i++){
                    if(ints[i]!=template[num-1])
                        {
                        template[num]=ints[i];
                        num++;
                        }
                 }
                for(int i=0;i<ints.length;i++)
                    ints[i]=template[i];
              }

    part2 代码:注意比较SListNode.item时需要用object.equals()的方法,而不能直接用==,==只能用于primitive type比较值,用于Object可以理解为比较的是类似C++里面的地址吧,

    一开始没注意这个问题直接写到currentNode.item==currentNode.next.item,列表根本就没变化,因为两个item的地址始终都不一样。

     public void squish() {
              SListNode currentNode=head;
             while(size>1&&currentNode.next!=null){
                 if(currentNode.item.equals(currentNode.next.item)){
                     currentNode.next=currentNode.next.next;
                     size--;
                 }
                 else
                     currentNode=currentNode.next;
             }
          }

    part 3:唯一一个没有改动的部分,感觉这个比前两个还是简单一些哈。

     public void twin() {
              if(isEmpty())
                  return;
              SListNode currentNode=head;
              for(int i=1;i<=this.size;i++){
                  SListNode newest=new SListNode(currentNode.item,currentNode.next);
                  currentNode.next=newest;
                  currentNode=currentNode.next.next;
              }
              size=size*2;
            
          }

    运行结果:

  • 相关阅读:
    c++笔试题3
    C++笔试题
    C++编程指南续(10-11)
    C++详解(8-9)
    C++编程指南(6-7)
    C++编程指南续(4-5)
    C++编程指南续
    C++的编程指南
    HPSocket介绍与使用
    WinForm中TreeView控件实现鼠标拖动节点(可实现同级节点位置互换,或拖到目标子节点)
  • 原文地址:https://www.cnblogs.com/lyz1995/p/7154014.html
Copyright © 2020-2023  润新知