实验三 栈和队列

更新时间:2023-09-18 09:24:01 阅读量: 幼儿教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验报告三 栈和队列

班级: 姓名: 学号: 专业:

一、 实验目的:

(1) 掌握栈的基本操作的实现方法。

(2) 利用栈先进后出的特点,解决一些实际问题。 (3) 掌握链式队列及循环队列的基本操作算法。 (4) 应用队列先进先出的特点,解决一些实际问题。 二、 实验内容:

1、 使用一个栈,将一个十进制转换成二进制。 粘贴源程序:

package Word1;

public class Node { }

T data; Node next; public Node(T a){ }

public Node(T a,Node n){ }

this.data=a; this.next=n; this(a,null);

------------------------------------

package Word1;

public class Stack { }

public Node Top; public Stack(){ }

public void push(T a){ }

public T Out(){ }

T a=this.Top.data; this.Top=this.Top.next; return a;

this.Top=new Node(a,this.Top); this.Top=null;

---------------------------------

package Word1;

import java.util.*;

public class Test { }

static Scanner scan=new Scanner(System.in); static int temp=0; static int a=0;

static Stack s=new Stack(); public static void main(String[] args){ }

temp=scan.nextInt(); while(true){ }

while(s.Top!=null){ }

System.out.printf(\,s.Out());

a=temp%2; s.push(a); temp=temp/2; if(temp==0)

break;

粘贴测试数据及运行结果:

2、回文是指正读反读均相同的字符序列,如“acdca”、“dceecd”均是回文,但“book”不是回文。利用1中的基本算法,试写一个算法判定给定的字符串是否为回文。(提示:将一半字符入栈,依次弹出与另一半逐个比较) 粘贴源程序:

----------------------------------------

package Word1;

import java.util.*; public class Test1 { }

static Scanner sc=new Scanner(System.in); static char[] c={'a','b','c','b','a'};

static Stack s=new Stack(); public static void main(String[] args){ }

public static String One(){ }

public static String Two(){ }

for(int i=0;i<(c.length/2);i++){ }

for(int i=c.length/2;i

return \该字符串是回文\;

if(s.Out()!=c[i])

return \该字符不是回文\; s.push(c[i]);

for(int i=0;i<(c.length/2);i++){ }

for(int i=c.length/2+1;i

return \该字符串是回文\;

if(s.Out()!=c[i])

return \该字符串不是回文\; s.push(c[i]); if(c.length%2!=0){ } else{ }

System.out.println(Two()); System.out.println(One());

--------------------------------------------

粘贴测试数据及运行结果:

3、 使用3个队列分别保留手机上最近10个“未接来电”、“已接来电”、“已拨电话”。

粘贴源程序:

package Word3;

import java.util.*;

public class Queue {

LinkedList list; public Queue(){ }

public void enQ(E a){ }

public E deQ(){ }

public boolean isEmpty(){ }

public void Pri(){

while((list.isEmpty()))

return list.isEmpty(); return list.removeLast(); list.addLast(a);

list=new LinkedList();

}

}

System.out.printf(\,this.deQ());

-------------------------------

package Word3;

import java.util.*;

public class Test {

static Queue list1=new Queue(); static Queue list2=new Queue(); static Queue list3=new Queue(); static Scanner sc=new Scanner(System.in); public static void main(String[] args){ }

public static void Frame(){ }

static private void T2() {

int c;

int[] a={22324,321321,222333}; for(int i=0;i

System.out.println(\请选择功能:\); System.out.println(\、查询 2、增加\); c=sc.nextInt(); if(c==1){ } else{

c=sc.nextInt();

while(!(list2.isEmpty()))

System.out.printf(\,list2.deQ()); list2.enQ(a[i]); int c=0; System.out.println(\请选择记录类型:\);

System.out.println(\、未接来电 2、已接来电 3、已拨电话\); switch(c=sc.nextInt()){ }

case 1:T1();break; case 2:T2();break; case 3:T3();break; Frame();

}

}

list2.enQ(c);

while(!(list2.isEmpty()))

System.out.printf(\,list2.deQ());

sc.close();

static private void T3() { }

static private void T1() {

int c;

int[] a={12324,321321,222333}; for(int i=0;i

System.out.println(\请选择功能:\); System.out.println(\、查询 2、增加\); c=sc.nextInt(); if(c==1){ } else{

c=sc.nextInt();

while(!(list1.isEmpty()))

System.out.printf(\,list1.deQ()); list1.enQ(a[i]); int c;

int[] a={32324,321321,222333}; for(int i=0;i

System.out.println(\请选择功能:\); System.out.println(\、查询 2、增加\); c=sc.nextInt(); if(c==1){ } else{ }

sc.close();

c=sc.nextInt(); list3.enQ(c);

while(!(list3.isEmpty()))

System.out.printf(\,list3.deQ()); while(!(list3.isEmpty()))

System.out.printf(\,list3.deQ()); list3.enQ(a[i]);

}

}

}

list1.enQ(c);

while(!(list1.isEmpty()))

System.out.printf(\,list1.deQ());

sc.close();

粘贴测试数据及运行结果:

三、

心得体会:(含上机中所遇问题的解决办法,所使用到的编程技巧、创新点及编程的心得)

本文来源:https://www.bwwdw.com/article/leah.html

Top