《数据结构》同学做的作业大家来讨论:顺序栈的实现

前端之家收集整理的这篇文章主要介绍了《数据结构》同学做的作业大家来讨论:顺序栈的实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是一个同学的顺序栈的实现代码,这位同学没有按照课本的方法来写,按自己的理解写了一个程序,对这位同学的尝试表示赞,同时,也推荐大家可以自己写出符合相应数据结构的算法程序。

当然,这位同学做的还有很多不合理的地方面,所以请大家上来讨论一下。希望 大家积极发言热烈讨论。对积极表示意思者,将会奖励!

请大家主要从:方法合理科学否?和 算法有无错误两个方面来讨论吧。

同学作业链接:http://blog.csdn.net/lvhaohang/article/details/40377859

#include<iostream>
using namespace std;
class sqstack
{
private: 
  int top; 
  int maxsize; 
  int *elem;
public:
  sqstack(int size) {maxsize=size; elem=new int[maxsize];  top=0; } 
  ~sqstack(){delete []elem;} 
  int length();
  bool empty(){return top==0;} 
  void push(int e); 
  void pop(int &e); 
  void display();
};
int sqstack::length()
  {    return top; }
void sqstack::push(int e)
  { elem[top++]=e;    }
void sqstack::pop(int &e)  
  { if (!empty())    {e=elem[--top];    ; }}
void sqstack::display(){ for(int i=top-1;i>=0;i-- ) 
{  cout<<elem[i] <<"  "; } cout<<endl;}
int main()
{ int i,x,e; sqstack a(100); 
cout<<"输入要建立栈的长度:"<<endl; 
cin>>x; 
for(i=1;i<=x;i++) 
{cout<<"请输入要入栈的"<<i<<"个数据:"<<endl; 
cin>>e; 
a.push (e); } 
cout<<"显示队栈中的元素为:"<<endl; 
a.display (); 
cout<<"输入出栈元素个数:"; 
cin>>x;   
 cout<<"出栈元素为:";
 for(i=1;i<=x;i++) {a.pop (e);  cout<<e<<"  "; } 
cout<<endl;   
 cout<<"显示栈中的剩余元素为:"<<endl; 
a.display ();
 return 0;}

猜你在找的数据结构相关文章