您的位置:首页 > 其它

一步一步写算法--栈

2013-06-13 09:02 288 查看
写在stack.h头文件中

源程序

#ifndef   STACK
#define  STACK

#include "stdio.h"
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
typedef struct LinkNode
{
BiTree data;
struct LinkNode *next;
}Node;
typedef struct{
Node *top;
}LiStack;
void InitStack(LiStack &s)
{
s.top=(Node *)malloc(sizeof(Node));
if(!s.top) return;
s.top->next=NULL;
}
int StackEmpty(LiStack s)
{
if(s.top->next==NULL) return 1;
else
return 0;
}
void Push(LiStack &s,BiTree e)
{
Node *p;
p=(Node *)malloc(sizeof(Node));
if(!p)
return ;
p->data=e;
p->next=s.top->next;
s.top->next=p;
}
void Pop(LiStack &s,BiTree &e)
{
Node *p;
if(StackEmpty(s)) return;
else
{
p=s.top->next;
e=p->data;
s.top->next=p->next;
free(p);
}
}
void GetTop(LiStack &s,BiTree &e)
{
Node *p;
if(StackEmpty(s)) return;
else
{
p=s.top->next;
e=p->data;
//s.top->next=p->next;
//free(p);
}
}
#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: