| 个人比较菜,只会瞎写一写bug,莫怪莫怪。 1.1数据结构杂论数据结构是计算机必学课程,其可以提高效率 目前有三类:线性结构(数组,栈,链表),树结构(二叉树,AVL,线段树,哈夫曼树),图结构(邻接表,邻接矩阵) 数据库一般分装好直接使用SQL语言使用,哈希表,等完成数据库 哈夫曼树,.rar,.png,MP3,MP4,均使用到数据结构,tried的工作原理 图论算法DFS深度算法使用栈;BFS广度算法,使用队列 数据结构+算法=程序 使用Java语言(完全面向对象) 
 ? 2.1数组概念:把数据码排成一排进行存放 public class Main{
 ? ?public static void main(String[] args)
 ?  {int[] arr=new int[10]
 ?  }
}
 2.1.1二次封装,数组类public class Array
{
    private int[] data;
    private int size;
 ? ?//构造函数,传入数组的容量capacity构造Array
    public Array(int capacity)
    {
    data = new int [capacity];
    size = 0;
    }
/*
无参数的构造函数,默认容量capacity为10
*/
public Array()
    {
 ? ?this(capacity:10)}
    }
//获取数组中的元素个数
public int getsize()
    {return size;}
//获取数组容量
public int getCapacity()
    {
 ? ?return data.length;
    }
//返回数组是否为空
public boollean isempty()
    {return ziae = 0;}
}
 2.1.2数组的元素添加1、数组末尾添加元素 //前方与上文相同
//在最后添加元素
public void addLast(int e)
    {
    if ( size == data.length)
 ? ? ? ?throw new illegalArgumentException("AddLast filed.Array is full")
 ? ?data[size] = e;
 ? ?size++;
 ? ?//data[size++]=e;
    } ? ?
}
 2、向指定位置添加 从后往前挪,防止前方覆盖后方,直到要添加位置 //在最前添加元素
public void addFirst(int e){
 ? ?add(index:0,e);
}
?
//在最后添加元素
public void addLast(int e)
    {
 ?/*    if ( size == data.length)
 ? ? ? ?throw new illegalArgumentException("AddLast filed.Array is full.");
 ? ?data[size] = e;
 ? ?size++;
 ? ?//data[size++]=e;
    */
add(size,e);
} ? ?
?
 //在指定为index位置添加元素e
public void add(int index,int e)
{if (size == data.length)
    throw new illegalArgumentException("AddLast filed.Array is full.");
if (index<0||index >size)
 ? ?throw new illegalArgumentException("Add faild.");
 for (int i=size-1;i >= index ;i--)
 {data[i+1]=data[i];
 size++;
 }
}
}
 2.2查询,修改,搜索和删除元素public static void main(String[] args)
{
 ? ?Array arr=new Array(capacity:20);
 ? ?for (int i=0;i<10;i++)
 ? ? ? ?arr.addLast(i);
 ? ? System.out.println(arr);
 ? ?arr.addFirst(e:-1);
 ? ?System.out.println(arr);
}
//获取索引位置元素
public int get(int index)
{
return data[index]
if (index<0||index>=size)
throw new illegalArgumentException("Add faild.");
}
 //修改index索引位置的元素为e
public void set (int index,int e)
{
 if (index<0||index>=size)
 throw new illegalArgumentException("Add    faild.");} 
 //对应索引,若不存在为-1 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
 public boolean contains(int e){
 ? ? ?for (int i=0;i<size;i++)
 ? ? ? ? ?if (data[i]==e)
 ? ? ? ?  { ? ?return i;}
 ? ? ? ? return -1; 
  } ? ?
//删除指定位置
public int remove(int index){
 if (index<0||index>=size)
 throw new illegalArgumentException("Add    faild.";)
 int ret =data[index];
 ?for (int i=0;i<size;i++)
data[i-1]=data[i];
size--;
return ret;
}
public int removefirst(){return remove(0);}
public int removelast(){return remove(size-1);}
public void removeElement(int e){
 ? ?int index=find(e);
 ? ?if (index!=-1)
 ? ? ? ?remove(index);//只删除一个
}
 ? ? ? |