实验二实验目的:实验目的:
堆栈和队列
1熟悉栈这种特殊线性结构的特性;2熟练并掌握栈在顺序存储结构和链表存储结构下的基本运算;3熟悉队列这种特殊线性结构的特性;3熟练掌握队列在链表存储结构下的基本运算。
实验原理:实验原理:
堆栈顺序存储结构下的基本算法;堆栈链式存储结构下的基本算法;队列顺序存储结构下的基本算法;队列链式存储结构下的基本算法;
实验内容:实验内容:
第一题链式堆栈设计。要求(1)用链式堆栈设计实现堆栈,堆栈的操作集合要求包括:初始化StackI
itiate(S)非空否StackNotEmptyS,入栈StackiPushSx出栈StackPop(Sd)取栈顶数据元素StackTopSd(2)设计一个主函数对链式堆栈进行测试。测试方法为:依次把数据元素1,2,3,4,5入栈,然后出栈并在屏幕上显示出栈的数据元素;(3)定义数据元素的数据类型为如下形式的结构体,TypedefstructchartaskName10i
ttaskNoDataType首先设计一个包含5个数据元素的测试数据,然后设计一个主函数对链式堆栈进行测试,测试方法为:依次吧5个数据元素入栈,然后出栈并在屏幕上显示出栈的数据元素。第二题对顺序循环队列,常规的设计方法是使用尾指针和对头指针,对尾指针用于指示当前的尾位置下标,对头指针用于指示当前的头位置下标。现要求:(1)设计一个使用对头指针和计数器的顺序循环队列抽象数据类型,其中操作包括:初始化,入队列,出队列,取对头元素和判断队列是否为空;(2)编写主函数进行测试。
程序代码:程序代码
第一题:第一题:(1)源程序