随笔-48  评论-259  文章-1  trackbacks-0

#include "iostream.h"
//这里还要加入我们默认的常量头文件
#include "head.h"

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int SElemType;

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;
}

posted on 2007-06-06 23:27 星梦情缘 阅读(2558) 评论(6)  编辑 收藏 引用 所属分类: 活动程序

评论:
# re: 顺序栈的实现程序 2007-06-07 12:41 | 刘东山
附上一个main 函数吧  回复  更多评论
  
# re: 顺序栈的实现程序 2007-06-07 12:44 | 刘东山
void main() //为进制转换的函数
{
SqStack S;
SElemType N;
SElemType e;
InitStack(S);
cout<<"input the number:";
cin>>N;

while(N)
{
Push(S,N%8);
N=N/8; 转换为八进制的数
}
while(!StackEmpty(S))
{
Pop(S,e);
cout<<e;
}
cout<<endl;



}  回复  更多评论
  
# re: 顺序栈的实现程序 2007-06-07 14:10 | 星梦情缘
我把实现程序发在这里,你们要是有用就下下去,要做什么事情就加在上面就可以用了  回复  更多评论
  
# re: 顺序栈的实现程序 2009-06-23 16:43 | 打开技术打开机
不能运行
  回复  更多评论
  
# re: 顺序栈的实现程序 2009-10-12 08:58 | 金艳
#inlcude "head.h"包含的内容是什么啊?  回复  更多评论
  
# re: 顺序栈的实现程序 2009-10-12 09:11 | 金艳
Status 的作用是什么呀?我是计算机系的,刚学完c++,问的不专业,多包涵,嘻嘻  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理