文档介绍:中国矿业大学计算机学院实验报告
课程名称__ _ 实验名称实验二栈、队列的实现、递归应用
班级_________ 姓名___________ 学号___________ 仪器组号_______ 实验日期______
实验报告要求:
一、实验目的
1 熟悉栈、队列这种特殊线性结构的特性
2 熟练掌握栈、队列在顺序存储结构和链表存储结构下的基本操作。
二、实验内容
基本题(必做):
1 分别就栈的顺序存储结构和链式存储结构实现
栈的各种基本操作。
2 、假设以带头结点的循环链表表示队列,并且
只设一个指针指向对尾结点,不设头指针,试设计相应的置队空、入队和出队的程序。
加强题:
1、设线性表A中有n个字符,试设计程序判断字符串是否中心对称,例如xyzyx和xyzzyx都是中心对称的字符串。
提高题:
1、试编写程序:
。
,要考虑实际运算时,后缀表达式中相邻操作数的界定。
三、实验步骤运行结果
1 分别就栈的链式存储结构实现
栈的各种基本操作。
#include ""
#include <iostream>
#include ""
using namespace std;
int main(int argc,char* argv[])
{
int iNumber = 5;
StackLink top = NULL;
top = Creat(iNumber);
Print(top);
Initial(top);
if (IsEmpty(top))
{
cout << "栈是空的!" << endl;
}
else
{
cout << "栈不是空的!"<< endl;
}
return 0;
}
2 、假设以带头结点的循环链表表示队列,并且
只设一个指针指向队尾结点,不设头指针,
试设计相应的置队空、入队和出队的程序。
#include ""
#include <iostream>
using namespace std;
typedef struct Node
{
int iData;
Node* next;
}QueueNode,*QueueList;
//////////////////////////////////////////////////////////////////////////
// 初始化一个循环链表来表示队列
void Initial(QueueList& rear)
{
QueueList p = NULL;
p = (QueueList)malloc(sizeof(QueueNode));
rear = p;
rear->next = rear;
}
//////////////////////////////////////////////////////////////////////////
// 入队操作
int InsertQueue(Qu