队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
以下Java代码显示了如何在不使用Java的任何额外数据结构的情况下实现队列。我们可以使用数组来实现队列。

导入 java.lang.reflect.Array ;导入 java.util.Arrays ;公共 类队列< E > { E [ ] arr ;INT头= - 1 ;INT尾= - 1 ;整数大小;公共队列(类< E > c,int大小) { E [ ] newInstance = ( E [ ] ) 数组。newInstance ( c,size );这个。arr = newInstance ;这个。大小 = 0 ;}布尔推送( ëë ) {如果 (大小==。ARR 长度)返回 假; 头= (头+ 1 ) % arr。长度; arr [头] = e ; 大小++;如果(尾巴== - 1 ){ 尾巴=头;}返回 true ;}布尔值 pop () {if ( size == 0 ) {返回 false ;} E结果= arr [尾] ; arr [ tail ] = null ; 大小-; 尾巴= (尾巴+ 1 )% arr。长度;如果 (大小== 0 ) { 头= - 1 ; 尾= - 1 ;}返回 true ;} E peek (){if ( size == 0 )返回 null ;返回 arr [ tail ] ;}public int size () {返回 此值。大小;}public String toString () {返回 数组。的ToString (此。常用3 );}公共 静态 无效主(字符串[ ] ARGS ) { 队列<整数> q = 新队列<整数> (整数。类,5 ); q。推(1 ); q。推(2 ); q。推(3 ); q。推(4 ); q。推(5 ); q。pop (); q。推(6 );系统。出来。println ( q );}}
|
发表评论 取消回复