堆栈
Z. Jia
这个作者很懒,什么都没留下…
展开
-
数据结构与算法题目集7-22 堆栈模拟队列(c语言实现)
原题链接这道题还是有点有趣的,我们首先需要了解堆栈是后进先出,队列是先进先出这一特点,然后根据这一特点来用堆栈模拟队列入队列:s1未满,s2空:元素入栈s1s1满,s2非空:输出错误:已满s1满,s2空:将s1的元素倒入s2,将新元素入栈s1s1未满,且非上面的情况:元素入栈s1if(isfull(s1)!=1 && isempty(s2)){ push(&am...原创 2020-05-06 09:36:42 · 805 阅读 · 0 评论 -
数据结构与算法题目集7-20 表达式转换(c语言实现)
原题链接这道题需要考虑负数和小数的情况,是否是数组我们用isnumber这个函数来判断。因为小数点不可能单独出现,所以我们认为小数点也是数字的一部分。我们先用一个字符串存储这个表达式,如果当前的字符是数字的一部分,直接输出。如果当前字符是正负号,那么进行如下判断。如果当前字符是第一个字符,那么肯定是数字的正负号;否则如果当前字符的前一个字符既不是 ‘)’ 也不是数字,那么它也是数字的正负号...原创 2020-05-05 22:05:58 · 556 阅读 · 0 评论 -
数据结构与算法题目集7-21 求前缀表达式的值(c语言实现)
原题链接首先我们将所有数据压到一个栈里,包括运算符号和数字。在这个题里我重新定义了一种变量类型。当no=1时,这个变量存储doule类型的数字,否则存储运算符。从栈顶开始,如果是数字,压到一个double类型的栈里,如果是运算符,从double栈里取两个数字进行计算。若令a为double栈顶数字,b为栈顶的下一个数字,那么令c=a运算符b,并将c压到double栈。大致思想如上所示,在代...原创 2020-05-05 20:34:56 · 2734 阅读 · 1 评论 -
PTA天梯赛L2-032 彩虹瓶(c语言实现)
原题链接这道题说实话就是题目有点绕,但其实的意思就是堆栈的一个变式应用。最核心的代码我写了注释,感兴趣的朋友可以交流一下。#include <stdio.h>typedef struct{ int stack[1001]; int top;}stack;void init(stack *s){ s->top=0;} void push(stack *s,in...原创 2020-04-11 23:32:28 · 2839 阅读 · 3 评论