需要完整的c++顺序栈程序,

sunwantc 2008-12-28 04:59:34
需要完整的c++顺序栈程序
...全文
342 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bfhtian 2008-12-28
  • 打赏
  • 举报
回复
没有需求怎么写主函数
zhangjundriver 2008-12-28
  • 打赏
  • 举报
回复
这样的代码自己写好些哦,很简单的,但能锻炼人的写程序的能力的
herman~~ 2008-12-28
  • 打赏
  • 举报
回复
mark
就呆在云上 2008-12-28
  • 打赏
  • 举报
回复

或许有一天他会想着自己写的,哎
#include <iostream>
#include <stdio.h>
using namespace std;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int SElemType;
typedef bool Status;
#define OVERFLOW -1
#define OK 1
#define ERROR 0

typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;

Status InitStack(SqStack &S)
{

S.base=new SElemType[STACK_INIT_SIZE];
if(!S.base)
return OVERFLOW;
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}

Status DestroyStack(SqStack &S)
{

S.top=NULL;
S.base=NULL;
delete[] S.base;
S.stacksize=0;
return OK;
}

int StackEmpty(SqStack s)
{
if(s.top==s.base) return 1;
else return 0;
}

Status GetTop(SqStack &s,SElemType &e)
{
if(s.top==s.base) return ERROR;
e=*(s.top-1);
return OK;
}

int StackLength(SqStack s)
{
return s.top-s.base;
}

Status ClearStack(SqStack &S)
{

S.top=S.base;
return OK;
}


Status Push(SqStack &s,SElemType e)
{
if(s.top-s.base>=s.stacksize)
return OVERFLOW;
*s.top++=e;
return OK;
}

Status Pop(SqStack &s,SElemType &e)
{
if(s.top==s.base) return ERROR;
e=*--s.top;
return OK;
}

Status StackTraverse(SqStack s,Status(*visit)(SElemType c))//这个函数最后不要用,因为它已经破坏了栈的特性
{
while(s.top>s.base)
visit(*s.base++);
cout<<endl;
return OK;
}
Status visit(SElemType c)
{
cout<<c<<" ";
return OK;
}

int main() {
SqStack a;
InitStack(a);
printf("%s empty!\n", StackEmpty(a)?" yes ": " no ");
Push(a, 10);
Push(a, 11);
Push(a, 12);
printf("%s empty!\n", StackEmpty(a)?" yes ": " no ");
int popvalue;
while(!StackEmpty(a)) {
Pop(a, popvalue);
cout << popvalue << endl;
}
DestroyStack(a);
}
星羽 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunwantc 的回复:]
主函数也要
[/Quote]

就呆在云上 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tangshuiling 的回复:]
引用 5 楼 sunwantc 的回复:
主函数也要

懒到如此地步,(ztz0223 天天兄)就没必要帮这位仁兄啦~~害人呀!!!
[/Quote]

有些人不是自己要学编程的
没有关系的
sagegz 2008-12-28
  • 打赏
  • 举报
回复
呵呵!主函数要你自己写,知道拨?你又没说要求,还好我没贴代码要不估计被骂死
tangshuiling 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunwantc 的回复:]
主函数也要
[/Quote]
懒到如此地步,(ztz0223 天天兄)就没必要帮这位仁兄啦~~害人呀!!!
melody1128 2008-12-28
  • 打赏
  • 举报
回复
#include<stdlib.h>
#include<iostream.h>
struct Node{
int a;
Node *next;
};

class Stack{
public:
Stack();
~Stack();
void Put(int item);
int Get();
protected:
Node*head;
};

Stack::Stack():head(NULL){}
Stack::~Stack(){
Node *p=head;
for(p;p;){
Node *t=p;
p=p->next;
delete t;
}

}
void Stack::Put(int item){
Node *p=new Node;
p->a=item;
p->next=head;
head=p;
}
int Stack::Get(){
if(!head){cout<<"error"<<endl;
exit(-1);}
int result=head->a;
Node *p=head;
head=head->next;
delete p;
return result;

}

void main(){
Stack sta;
int i=0;
for(i=0;i<9;i++)
sta.Put(i);
for(i=0;i<9;i++)
cout<<sta.Get()<<endl;



}
sunwantc 2008-12-28
  • 打赏
  • 举报
回复
主函数也要
就呆在云上 2008-12-28
  • 打赏
  • 举报
回复
给你一个完整的


#include <iostream>
using namespace std;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int SElemType;
typedef bool Status;
#define OVERFLOW -1
#define OK 1
#define ERROR 0

typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;

Status InitStack(SqStack &S)
{

S.base=new SElemType[STACK_INIT_SIZE];
if(!S.base)
return OVERFLOW;
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}

Status DestroyStack(SqStack &S)
{

S.top=NULL;
S.base=NULL;
delete[] S.base;
S.stacksize=0;
return OK;
}

int StackEmpty(SqStack s)
{
if(s.top==s.base) return 1;
else return 0;
}

Status GetTop(SqStack &s,SElemType &e)
{
if(s.top==s.base) return ERROR;
e=*(s.top-1);
return OK;
}

int StackLength(SqStack s)
{
return s.top-s.base;
}

Status ClearStack(SqStack &S)
{

S.top=S.base;
return OK;
}


Status Push(SqStack &s,SElemType e)
{
if(s.top-s.base>=s.stacksize)
return OVERFLOW;
*s.top++=e;
return OK;
}

Status Pop(SqStack &s,SElemType &e)
{
if(s.top==s.base) return ERROR;
e=*--s.top;
return OK;
}

Status StackTraverse(SqStack s,Status(*visit)(SElemType c))//这个函数最后不要用,因为它已经破坏了栈的特性
{
while(s.top>s.base)
visit(*s.base++);
cout<<endl;
return OK;
}
Status visit(SElemType c)
{
cout<<c<<" ";
return OK;
}

int main() {}
帅得不敢出门 2008-12-28
  • 打赏
  • 举报
回复
http://www.cppblog.com/3522021224/archive/2007/06/06/25688.html
liubuweiright 2008-12-28
  • 打赏
  • 举报
回复
up
hityct1 2008-12-28
  • 打赏
  • 举报
回复
作业?

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧