实验三 顺序栈和链栈

一、实验目的

1、   熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。

2、      学会使用栈和队列解决实际问题。

二、实验内容

1、自己确定结点的具体数据类型和问题规模:

分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。

分别建立一个顺序队列和链队列,实现队列的入队和出队操作。

2、设计算法并写出代码,实现一个十将二进制转换成2进制数。

3、选做题(*

设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。

三、实验步骤

1、依据实验内容分别说明实验程序中用到的数据类型的定义;

2、相关操作的算法表达;

3、完整程序;

4、总结、运行结果和分析。

5、总体收获和不足,疑问等。

四、实验要求

1、   按照数据结构实验任务书,提前做好实验预习与准备工作。

2、   “*”为选做题。做好可加分。

3、   严格按照数据结构实验报告模板和规范,及时完成实验报告。

4、   在个人主页上发文章提交作业。

5、   实验课会抽查3-5人,希望你可以被查到!


五、实验

1.顺序栈

#include  
using namespace std;  
const int Max=20;  
class SeqStack  
{  
    public:  
        SeqStack(){top=-1;}  
        ~SeqStack(){}  
        void Push(int x);  
        void Pop();  
        int GetTop(){if(top!=-1)return data[top];}  
        int Empty(){if(top=-1)return 1; else return 0;}  
    private:  
        int data[Max];  
        int top;  
};  
  
  
void SeqStack::Push(int x)  
{  
    if(top==Max-1)throw"上溢";  
    data[++top]=x;  
}  
  
  
void SeqStack::Pop()  
{  
    int x;  
    if(top==-1)throw"下溢";  
    x=data[top--];  
    cout<>n;  
    if(n>Max) throw"上溢";  
    cout<<"请输入一组数:";  
    for(int i=0;i>x;  
        a.Push(x);  
    }  
    cout<<"出栈结果如下:";  
     a.Pop();  
       
  
    return 0;  
}  

结果:



2.链栈

#include
using namespace std;
struct Node
{
	int data;
	Node *next;
};

class LinkStack
{
	public:
		LinkStack(){top=NULL;}
		~LinkStack(){}
        void Push(int x);
		int Pop();
		int GetTop(){if(top!=NULL)return top->data;}
		int Empty(){if(top=NULL)return 1;return 0;}
	private:
        Node *top;
};

void LinkStack::Push(int x)
{
	Node *s;
	s=new Node;
	s->data=x;
	s->next=top;
	top=s;
}

int LinkStack::Pop()
{
	Node *p;
	int x;
	if(top==NULL)throw"down";
	x=top->data;
	p=top;
	top=top->next;
	delete p;
	return x;
}

int main()
{
	LinkStack a;
	int b,n,x;
	cout<<"请输入您想输入数的个数为:";
	cin>>n;
	cout<<"请输入一组数:";
	for(int i=0;i>x;
		a.Push(x);
	}
    cout<<"请输入您想弹出数的个数:"<>b;
	cout<<"结果如下:";
	for(int p=n;p>n-b;p--)
	cout<

结果:

实验三 顺序栈和链栈_第1张图片


六、心得体会

     对于栈的结构有更深刻的感受,同时熟悉了对栈的操作。但是仍有很多问题出现,例如书写规范问题,让我花了较多时间去查找问题所在。


你可能感兴趣的:(实验三 顺序栈和链栈)