数据结构实验报告(三)
数据结构实验报告(三)
一、实验名称
实验三 栈和队列的基本操作实现及其应用
二、实验目的
1、熟练掌握栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、学会使用栈和队列解决实际问题。
三、实验内容
1.自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2.设计算法并写出代码,实现一个将十进制转换成二进制数。
四、详细设计(C++)
源程序代码
顺序栈:
#include
using namespace std;
class MyStack
{
public:MyStack(int size);~MyStack();bool stackEmpty();bool stackFull();void clearStack();int stackLength();bool push(char elem);bool pop(char &elem);void stackTraverse(bool isFromButtom);
private:char *m_pBuffer;int m_iSize;int m_iTop;
};MyStack::MyStack(int size)
{m_iSize=size;m_pBuffer=new char[m_iSize];m_iTop=0;
}MyStack::~MyStack()
{delete[]m_pBuffer;
}bool MyStack::stackEmpty()
{if(m_iTop==0){return true;}return false;
}bool MyStack::stackFull()
{if(m_iTop==m_iSize){return true;}return false;
}void MyStack::clearStack()
{m_iTop=0;
}int MyStack::stackLength()
{return m_iTop;
}bool MyStack::push(char elem)
{if(stackFull()){return false;}m_pBuffer[m_iTop]=elem;m_iTop++;return true;
}bool MyStack::pop(char &elem)
{if(stackEmpty()){return false;}m_iTop--;elem=m_pBuffer[m_iTop];return true;
}void MyStack::stackTraverse(bool isFromButtom)
{if(isFromButtom){for(int i=0;i=0;i--){cout<push('h');pStack->push('e');pStack->push('l');pStack->push('l');pStack->push('o');pStack->stackTraverse(true);cout<stackTraverse(false);char elem;pStack->pop(elem);cout<stackTraverse(true);cout<clearStack();cout<stackLength()<stackEmpty()){cout<<"栈为空"<&
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
