基于C语言堆栈push,pop,destroystack,isEmpty,isFull实现
以下代码是基于C语言写的堆栈的压栈,出栈,清栈,读栈指针等方法,在Visual studio 中,可直接使用,供学习者参考学习。
#include
#include
#include
#include
#include
#include
#define MAX_SIZE 100
typedef struct Stack
{
char *data;
int size;
int top;
};
void initStack(Stack *s); //init stack
void destroyStack(Stack *s);
bool push(Stack *s,char ch);
char pop(Stack *s);
char gettop(Stack *s);
bool isEmpty(Stack *s);
bool isFull(Stack *s);
void setNull(Stack *s);
#endif
void initStack(Stack *s)
{
s->data = (char*)malloc(MAX_SIZE * sizeof(char)); //分配最大内存空间
if (!s->data)
exit(OVERFLOW); //提前终止程序
s->size = MAX_SIZE;
s->top = -1;
}
void destroyStack(Stack *s)
{
free(s->data);
}
bool push(Stack *s, char ch)
{
if ((s->top + 1) != s->size)
{
s->data[++s->top] = ch;
return true;
}
else
return false;
}
char pop(Stack *s)
{
if (s->top != -1)
return s->data[s->top--];
}
char gettop(Stack *s)
{
return s->data[s->top];
}
bool isEmpty(Stack *s)
{
if (s->top == -1)
return true;
else
return false;
}
bool isFull(Stack *s)
{
if ((s->top + 1) == s->size)
return true;
else
return false;
}
void setNull(Stack *s)
{
s->top = -1;
}
int main()
{
char chd;
bool c;
Stack s1;
initStack(&s1);
c = push(&s1, "a");
printf("Stack s1 push status is %d,s.data is %c,top value is %d ", c,s1.data[s1.top],s1.top);
c = push(&s1, "b");
printf("Stack s1 push status is %d,s.data is %c,top value is %d ", c, s1.data[s1.top], s1.top);
chd = gettop(&s1);
printf("Stack s1->top data:%c,top value is %d ", chd, s1.top);
chd = pop(&s1);
printf("Stack 弹出 data:%c,top value is %d ", chd, s1.top);
chd = pop(&s1);
printf("Stack 弹出 data:%c,top value is %d ", chd, s1.top);
c = isEmpty(&s1);
printf("Stack s1 c bool:%d,top value is %d ", c, s1.top);
c = isFull(&s1);
printf("Stack s1 c bool:%d,top value is %d ", c, s1.top);
return 0;
}
助听器可以给别人使用吗?(耳赵问答190111)一款合格的助听器是根据佩戴者具体的听力状况而量身定做,就好比配眼镜一样,不同的人眼镜度数不同,不能混用,助听器则更为复杂,混用不仅是达不到助听效果,还有损害
微信在后台反复读取用户相册,真实情况如何?微信在后台反复读取用户相册,真实情况如何?该如何保护用户隐私信息?很多的东西都是有双面性的,我们应该学会权衡利弊,不要被网络带节奏啊!什么对?什么错?每个人心中都有一杆秤,遵从自己
助听器的声反馈测试是什么?对佩戴有何帮助?当助听器增益过高,或外壳耳模过小,气孔过大,可能就会引起啸叫,发出啸叫声,让人听起来很吵不舒服,助听器的声反馈测试是防止助听器啸叫的一种技术,做反馈可以消除反馈声,防止啸叫,让患者
听力测试是怎么回事?听力测试是怎么回事?听力测试有助于医生确定听力损失的类型和听力障碍的程度。临床常用的有音叉试验和纯音测听。音叉听力测验包括林那测试和韦伯测试。这两种测试都是利用音叉来确定听力损失的
想买个苹果13咋这么难呢?因为最近国庆想着去线下买个苹果13,跑了七天也没有买到,今天国庆假期终于结束了,我还是抱着试试看的心态又去了两家长沙比较大点的实体店看苹果手机。首先来到第一家店说蓝色手机现货明天有
苹果13好,还是华为好偷得浮生iphone13要出来了,值不值得买?微醉阳光这个得看需求了。偷得浮生想都不用想这次价格肯定虚高,他们想割韭菜。微醉阳光功能升级的话价格肯定会更高,要买的话还是要看性价比。
苹果iPhone13上的骁龙X605G基带,到底有多强?在苹果iPhone13系列的拆解中,我们看到了iPhone13系列强悍背后的内在实力,除了全新的苹果A15仿生芯片,其背面还有一颗十分强大的5G基带芯片高通骁龙X60。它也是今年安
小米手机性价比高,为什么总有人不喜欢?小米手机品牌,自诞生之起,就是宣称主打性价比。其性价比的概念,是指用户以最低的市场价,获得高于预期的使用体验。小米最初的理念,是坚持高性能为主,俗称配置发烧。每有新品发布,必然力争
都是定位女性用户,vivoS10和小米Civi你会选择哪款?作为定位女性用户的手机,vivoS10和小米Civi都在自拍轻薄外观设计方面做足了文章,但同时这两款机型都被打上了高价低配的帽子,毕竟这两款手机的价格和硬件配置在当前的安卓手机中并
河北首家互联网医院探访互联网医疗健康,让患者便捷就医互联网医疗健康,让患者便捷就医河北省首家互联网医院探访7月23日,河北省首家启动运营的互联网医院河北工程大学附属医院互联网医院在邯郸市正式上线运营,受到社会各界关注。该医院创建过程
最靠谱的IT培训机构有哪些?三家机构分析,小白来看看,别踩坑如今IT技术行业是大家很熟悉的一个热门行业,现在大大小小的互联网公司,不管从技术上还是营销上都离不开IT行业,所以现在国内的IT培训机构也是越来越多,鱼龙混杂谁都想钻空子插一脚,所