题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能
2017-11-09 21:05
555 查看
import java.util.Stack; public class ConStructQueue { /* * 问题描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead, * 分别完成在队列尾部插入结点和在队列头部删除结点的功能 */ /** * @param args */ Stack<String> stack1 = new Stack<String>(); Stack<String> stack2 = new Stack<String>(); // 实现appendTail函数 public void appendTail(String s) { stack1.push(s); } // 实现deleteHead函数 public String deleteHead() throws Exception { if (stack2.isEmpty()) { while (!stack1.isEmpty()) { stack2.push(stack1.pop()); } } if (stack2.isEmpty()) { throw new Exception("队列为空,不能进行删除操作"); } return stack2.pop(); } public static void main(String[] args) throws Exception { ConStructQueue test = new ConStructQueue(); // 向空的队列中添加元素、删除元素 test.appendTail("1"); System.out.println(test.deleteHead()); // 向非空的队列添加删除元素 test.appendTail("2"); test.appendTail("3"); System.out.println(test.deleteHead()); } }
相关文章推荐
- 面试题7:用两个栈实现队列,队列的声明如下,请实现它的两个函数appendTail和deleteHead, 分别完成在队列尾部插入结点和在队列头部删除节点的功能。
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 实现两个函数,分别完成数组元素的插入和删除操作
- 将任务4的解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。
- 一个用Java实现的双向队列,可以分别在头尾插入和删除节点
- 两个栈实现一个队列的加入、删除功能
- 10.6 分别用字符数组和字符指针作函数参数两种方法编程实现在字符串每个字符间插入一个空格的功能
- 【难】【队列】实现一个支持插入、删除和查找最大值三种功能的队列
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- C++第六周任务5:解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。
- 两个栈实现一个队列的添加、删除功能
- C#第十周任务之最后一项之创建一个如下的窗体,并在窗体上放置一个菜单、一个工具栏控件。菜单内容如第二个图所示。工具栏上有两个按钮,分别对应“打开文本文件”、“保存文本文件”。菜单和工具栏具体功能实现可
- 笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
- 用两个栈实现一个队列:实现出队列和入队列功能,用两个队列实现一个栈
- 用两个栈实现一个队列的功能
- 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。
- 程序员面试宝典之数据结构基础----C++两个栈实现一个队列功能
- 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。
- 编写一个函数,实现两个字符串的连接功能
- 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点