⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alist.java

📁 基于图形的二叉树工作演示程序
💻 JAVA
字号:
package myBag;
import myBag.List;
public class  AList  implements List{              //用数组实现的线性表
    private  Object[]  listArray;                  //存储表元素的数组
    private  static  final  int  defaultSize = 10; //默认的数组长度
    private  int  msize;                  //数组的长度
    private  int  numInList;              //表元素数量,不应当超过数组长度;
    private  int  curr;                   //当前元素位置
    public AList(){ setup(defaultSize); } //创建默认长度的顺序表
    public AList(int  sz){ setup(sz); }   //创建指定长度的顺序表
    private  void  setup(int  sz){        //创建顺序表,供构造方法调用
       msize = sz;
       numInList = curr = 0;
       listArray = new  Object[sz];
   }

   public void clear(){                   //从表中移去所有元素
      numInList = curr = 0;
   }
   public void insert(Object it){         //在curr位置插入元素
      Assert.notFalse(numInList < msize, "表是满的");
      Assert.notFalse((curr >= 0) && (curr <= numInList), "当前位置越界");
      for(int  i = numInList; i > curr; i--)   listArray[i] = listArray[i-1];
      listArray[curr] = it;
      numInList++;
   }
   public void append(Object it){         //在表尾插入元素
      Assert.notFalse(numInList < msize, "表是满的");
      listArray[numInList++] = it;
   }
   public Object remove(){                //移去并返回当前元素
      Assert.notFalse(!isEmpty(), "不能从空表删去元素");
      Assert.notFalse(isInList(), "当前位置越界");
      Object  it = listArray[curr];
      for(int i=curr; i<numInList-1; i++)    listArray[i] =  listArray[i+1];
      numInList--;
      return  it;
   }
   public void setFirst(){ curr = 0;  }          //设置当前位置为第1个位置
   public void next(){ curr++; }                 //将当前位置移到下一个元素
   public void prev(){ curr--; }                 //将当前位置移到前一个元素
   public int length(){ return  numInList; }     //返回表的当前长度
   public void setPos(int pos){ curr = pos; }    //设置当前位置为pos
   public void setValue(Object  it){             //设置当前元素中的元素值
      Assert.notFalse(isInList(), "当前位置越界");
      listArray[curr] = it;
   }
   public Object currValue(){             //返回当前元素中的元素值
      Assert.notFalse(isInList(), "当前位置越界");
      return   listArray[curr];
   }
   public boolean isEmpty(){              //若表为空返回true
      return numInList == 0;
   }
   public boolean isInList(){             //若当前位置在表中,返回true
      return (curr>=0) && (curr < numInList);
   }
   public void print(){                   //打印表中的所有元素
      if(isEmpty()) System.out.println("( )");
      else {
              System.out.print("( ");
              for( setFirst(); isInList(); next()) System.out.print(currValue()+"  ");
              System.out.println(")");
      }
   }
}//class AList

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -