C++基础教程
——
作业及参考答案全部汇总文档
节9队列和栈阶段作业

最新版本V2.0
王道C++团队
COPYRIGHT ⓒ 2021-2024. 王道版权所有

基础题篇

Gn!

下面都是一些基础的语法、概念编程练习题。

手动实现链式栈

Gn!

基于以下头文件,手动实现一个链式栈:

参考代码如下:

参考代码:

以下是实现源文件的代码,即所有函数的实现如下:

测试用例代码如下:

以上。

手动实现动态数组循环队列

Gn!

基于以下动态数组队列的头文件定义,实现一个动态数组队列:

注意:你要实现一个循环队列,而不是一个普通队列。

参考代码如下:

参考代码:

以下是实现源文件的代码,即所有函数的实现如下:

测试用例代码:

以上。

栈的应用:括号匹配问题

Gn!

在上述已实现的一个链式栈(数组栈也行)的基础上,编写代码完成字符串括号的匹配校验。

括号都是英文字符括号,而且有三类:{}、[]、()

注:

1.若字符串中没有括号,也算做括号匹配成功。

2.思路可以参考文档《栈》

参考代码如下:

参考代码如下:

首先是链式栈的头文件,该文件中需要修改栈中元素的类型为char类型:

链式栈的实现代码:

括号匹配函数以及相关的测试代码:

以上。

扩展题篇

Gn!

以下题目都属于扩展题。

扩展:手动实现动态数组栈

Gn!

基于以下头文件,手动实现一个动态数组栈:

当栈中元素已满时,就需要扩容此数组,扩容策略可以自行拟定。

参考代码如下:

参考代码实现如下:

以下是实现源文件的代码,即所有函数的实现如下:

测试用例代码如下:

以上。

扩展:手动实现链式队列

Gn!

基于以下头文件,手动实现一个链式队列:

注意:链式队列显然不具有满的概念,所以也不需要执行判满操作。

参考代码如下:

参考代码实现如下:

以下是实现源文件的代码,即所有函数的实现如下:

测试用例代码如下:

以上。

The End