LiSatck.cpp

/*
**	Expression value
**	time:2014-10-07-13:53
**	author:halfopen
**	version:1
*/
#include <stdio.h>
#include <stdlib.h>
#include "LiStack.h"
void InitStack( LiStack *&s)
{	s = (LiStack *)malloc( sizeof(LiStack));
	s->next = NULL;
}
void DestroyStack( LiStack *&s)
{	LiStack *p = s,*t;
	while(NULL != p)
	{	t = p;
		free(p);
		p = t->next;
	}
	free(p);
}
bool StackEmpty( LiStack *&s)
{	return (NULL == s->next);
}
void Push( LiStack *&s, ElemType e)
{	LiStack *p = (LiStack *)malloc( sizeof(LiStack));
	p->data = e;
	p->next = s->next;
	s->next = p;
}
bool Pop( LiStack *&s, ElemType &e)
{	LiStack *p = s->next;
	if(NULL == p)return false;
	e = p->data;
	s->next = p->next;
	free(p);
	return true;
}
bool GetTop( LiStack *s, ElemType &e)
{	if( NULL == s->next)
		return false;
	e = s->next->data;
	return true;
}
void DispStack( LiStack *s)
{	LiStack *p = s->next;
	while(NULL != p)
	{	printf("%c",p->data);
		p = p->next;
	}
	if(NULL == s->next)puts("Empty");
	else puts("");
}

/

void InitStack2( LiStack2 *&s)
{	s = (LiStack2 *)malloc( sizeof(LiStack2));
	//s->data = 0.2491124;
	s->next = NULL;
}
void DestroyStack2( LiStack2 *&s)
{	LiStack2 *p = s,*t;
	while(NULL != p)
	{	t = p;
		free(p);
		p = t->next;
	}
	free(p);
}
bool StackEmpty2( LiStack2 *&s)
{	return (NULL == s->next);
}
void Push2( LiStack2 *&s, double e)
{	LiStack2 *p = (LiStack2 *)malloc( sizeof(LiStack2));
	p->data = e;
	p->next = s->next;
	s->next = p;
}
bool Pop2( LiStack2 *&s, double &e)
{	LiStack2 *p = s->next;
	if(NULL == p){return false;}
	e = p->data;
	s->next = p->next;
	free(p);
	return true;
}
bool GetTop2( LiStack2 *s, double &e)
{	if( NULL == s->next)
		return false;
	e = s->next->data;
	return true;
}
void DispStack2( LiStack2 *s)
{	LiStack2 *p = s->next;
	while(NULL != p)
	{	printf("%lf ",p->data);
		p = p->next;
	}
	if(NULL == s->next)puts("Empty");
	else puts("");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值