189 8069 5689

队列出队的伪代码java 队列基本操作代码

用java编一个队列

自己写了个简单的实现

创新互联公司专注于崂山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供崂山营销型网站建设,崂山网站制作、崂山网页设计、崂山网站官网定制、微信小程序开发服务,打造崂山网络公司原创品牌,更为您提供崂山网站排名全网营销落地服务。

class QueueE{

private Object[] integerQueue;//用来当队列

public int tail;//队尾

public int size;//队的长度,也可以设置一个默认值,溢出时从新申请

public Queue(int size){

integerQueue=new Object[size];

this.size=size;

tail=-1;

}

/**

* 将元素插入队列

* @return 如果该元素已添加到此队列,则返回 true;否则返回 false

*/

public boolean offer(E e){

if(tail size-1){

tail++;

this.integerQueue[tail]=e;

return true;

}else{

return false;

}

}

/**

* 获取并移除此队列的头,如果此队列为空,则返回 null。

*/

public E poll(){

Object tmp;

if(tail=0){

tmp=this.integerQueue[tail];

tail--;

return (E)tmp;

}else{

return null;

}

}

}

java编程 设计队列类。(先进先出)

import java.util.Vector;

@SuppressWarnings({ "unchecked", "serial" })

public class Stat extends Vector {

public void push(Object x) {

super.add(x); // 向队尾添加组件

}

public Object pop() { // 队首元素出队(从队列删除)

Object x = super.elementAt(0); // 返回指定索引处的组件

super.removeElementAt(0); // 删除指定索引处的组件

return x;

}

public void remove() {

super.removeAllElements(); // removeAllElements()移除全部组件,并将其大小设置为零

}

public static void main(String[] args) throws java.io.IOException {

Stat s = new Stat();

s.push("123adfasf123");

s.push(123123132);

System.out.println(s.pop());

System.out.println(s.pop());

}

}

利用两个栈S1和S2模拟一个队列,写出入队和出队的算法,可用栈的基本操作

// s1是容量为n的栈,栈中元素类型是elemtp。本函数将x入栈,若入栈成功返回1,否则返回0。

int enqueue( stack s1, elemtp x )

{

if( top1==n !Sempty(s2) ) // top1是栈s1的栈顶指针,是全局变量

{

// s1满、s2非空,这时s1不能再入栈

printf(“栈满”);

return(0);

}

if( top1==n Sempty(s2) ) // 若s2为空,先将s1退栈,元素再压栈到s2

{

while( !Sempty(s1) )

POP( s1, x );

PUSH( s2, x );

}

PUSH( s1, x ); // x入栈,实现了队列元素的入队

return(1);

}

// s2是输出栈,本函数将s2栈顶元素退栈,实现队列元素的出队

void dequeue( stack s2, stack s1 )

{

if( !Sempty(s2) ) // 栈s2不空,则直接出队

{

POP( s2, x );

printf( “出队元素为”, x );

}

else if( Sempty(s1) ) // 处理s2空栈。若输入栈也为空,则判定队空

{

printf(“队列空”);

exit(0);

}

else // 先将栈s1倒入s2中,再作出队操作

{

while( !Sempty(s1) )

{

POP( s1, x );

PUSH( s2, x );

}

POP( s2, x ); // s2退栈相当队列出队

printf( “出队元素为”, x );

}

}

// 本函数判用栈s1和s2模拟的队列是否为空

int queue_empty()

{

if( Sempty(s1) Sempty(s2) ) // 队列空

return(1);

else

return(0); //队列不空。

}

#include stdlib.h

#include stdio.h

typedef struct

{

char *base;

char *top;

int stack_size;

}stack;

void init_stack(stack *s)

{

s-base=(char *)malloc(50*sizeof(char));

if(!s-base)return;

s-top=s-base;

s-stack_size=50;

}

void push(stack *s,char e)

{

if(s-top-s-base=s-stack_size)

{

s-base=(char *)realloc(s-base,(s-stack_size+50)*sizeof(char));

if(!s-base)return;

s-top=s-base+s-stack_size;

s-stack_size+=50;

}

*(s-top)=e;

s-top++;

}

void pop(stack *s,char *e)

{

s-top--;

*e=*(s-top);

}

int stack_empty(stack *s)

{

if(s-top==s-base)return 1;

return 0;

}

int queue_empty(stack *s1,stack *s2)

{

if(stack_empty(s1)stack_empty(s2))return 1;

return 0;

}

void dequeue(stack *s1,stack *s2,char *a) /*s1负责入队,s2负责出队*/

{ /*出队之前 */

char e; /*先把s1倒灌到s2里面*/

if(!queue_empty(s1,s2)) /*这样把最先入队的暴露在最外面*/

{

while(!stack_empty(s1))

{

pop(s1,e);

push(s2,e);

}

pop(s2,a);

}

}

void enqueue(stack *s1,stack *s2,char a)

{

char e;

while(!stack_empty(s2))

{

pop(s2,e);

push(s1,e);

}

push(s1,a);

}

main()

{

char e,*a="good good study day day up";

int i=0;

stack s1,s2;

init_stack(s1);

init_stack(s2);

while(a[i])

{

enqueue(s1,s2,a[i]);

i++;

}

while(!queue_empty(s1,s2))

{

dequeue(s1,s2,e);

printf("%c",e);

}

getch();

}

高手请帮忙用java版的数据结构,设置3个队列,实现入队出队。

import java.util.ArrayList;

/**

*

* @author 狱韬

*/

public class SnakeBody {

private int size=0; //队列的长度

private int cursor=-1; //指针

private ArrayListint[] list=null; //存储器

public SnakeBody() {

list=new ArrayListint[](); //存储器

}

//返回底部的数据

public int[] getLast(){

return list.get(list.size()-1);

}

//返回顶部的数据

public int[] getFirst(){

return list.get(0);

}

//压入数据

public void put(int[] arry){

list.add(arry);

}

//删除底部数据

public void removeLast(){

list.remove(list.size()-1);

}

//重置

public void reSet(){

list=new ArrayListint[](); //存储器

}

//删除顶部数据

public void removeFirst(){

list.remove(0);

}

//返回数据长度

public int size(){

return list.size();

}

public static void main(String[] args) {

SnakeBody data = new SnakeBody();

for(int i=0;i10;i++){

data.put(new int[]{0,i});

}

System.out.println(data.getFirst()[0]+"-------"+data.getFirst()[1]);

System.out.println(data.getLast()[0]+"-------"+data.getLast()[1]);

data.removeLast();

System.out.println(data.getFirst()[0]+"-------"+data.getFirst()[1]);

System.out.println(data.getLast()[0]+"-------"+data.getLast()[1]);

}

}

怎么编写一个简单的java队列?

import java.util.*;

public class MyQueueT {

private LinkedListT list = new LinkedListT();

public void addLast(T v) {

list.addLast(v); //队尾插入

}

public T getFirst() {

return list.getFirst(); //取得队受元素

}

public void remove() {

list.removeFirst(); //移除队首元素

}

//类似功能自己扩展下

public static void main(String[] args) {

MyQueueString mq = new MyQueueString();

mq.addLast("hello world");

mq.addLast("hello world2");

System.out.println(mq.getFirst());

mq.remove();

System.out.println(mq.getFirst());

}

}


本文标题:队列出队的伪代码java 队列基本操作代码
文章地址:http://cdxtjz.cn/article/doogpsh.html

其他资讯