`
快乐的拖拉机
  • 浏览: 9189 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

队列的总结

 
阅读更多
队列的总结
自己的理解:
队列就是一个可以进行添加,删除等功能的智能数组,他是以数组为基础的,队列一般由一个抽象类或接口与实现这个抽象类或接口的类组成。
实现步骤:
1. 先定义一个队列的接口(接口中就是要实现的方法)
2. 编写一个实现类(在实现类内部,还是使用数组保存装入队列的对象,每增加一个新的元素就创建一个比原来大一的数组)
3. 创建一个程序的入口;
4. 接口的定义模式:
Public interface 接口名{
//向队列中加入一个对象
Public void  add(添加对象类名   对象)
//取得队列中指定位置的一个学生对象
Public  类名 get(int  index)
//得到队列的长度,即所有元素的个数
Public   int  size()
}
实现接口的模式:
public   class   类名 implements 接口名{
public  void   add(类型  对象){
实现方法
}
Public  类名 get(int index){
返回数组对象
}
Pubic int size(){
返回长度
}
}
泛型:
泛型就是在创建队列时指定队列中所存放对象的类型,这样一个队列就可以存放好多个类型的对象。
关键字:E
队列的接口:public interface 接口名<E>{}
泛型中,在传参数的时候都是泛型,具体的类型是在实例化的时候确定的
例如:在add方法中 public void add(E e)
     比如添加两个实例化对象   Student st = new Student();
                    People  p = new People();
     就可以直接添加:XX.add(st),XX.add(p)这里面存储的就是Student类的对象与People 两个类型的对象
    不像数组一个类型的数组只可以存储一个类型的对象
   
   
   
   
   
官方解释:
1、定义
     队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。
  (1)允许删除的一端称为队头(Front)。
  (2)允许插入的一端称为队尾(Rear)。
  (3)当队列中没有元素时称为空队列。
  (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。
具体算法演示请点击查看
(网上的介绍)  队列的结构特点是先进队的元素先出队。假设有队列Q=(a1,a2,...,an),则队列Q中的元素是按a1,a2,...,an的次序进队,而第一个出队的应该是a1,第二个出队的应该是a2,只有在ai-1出队后, ai才可以出队(1≤i≤n),如图3.9所示。
     队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾(即不允许"加塞"),每次离开的成员总是队列头上的(不允许中途离队),即当前"最老的"成员离队。
 
2、队列的基本逻辑运算
与栈类似,队列的运算可以归纳为以下几种:
1. AddQ(ElemType x)
——在队列的尾部插入一个新的元素x。队尾的位置由rear指出。
2. DelQ(Q)
——删除队列的队头的元素。队头的位置由front指出。
3. EmptyQ(Q)
——测试队列Q是否为空队。当队列为空时返回一个真值,否则返回一个假值。
4. FrontQ(Q)
——取得队列Q的队头元素。该运算与DelQ(Q)不同,后者要修改队头元素指针。
5. SetNULL(Q)
——创建一个空队Q,这个运算与线性表置空表类似。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics