![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈
文章平均质量分 85
wangsimiao118
这个作者很懒,什么都没留下…
展开
-
算术表达式的转换
这道题的算法思想就是:关键就是求前缀式,我问可以在求完中缀和后缀式后,将输入的字符串先逆置,再对逆置后的字符串求后缀式,最后将求得的后缀式逆序输出即为其前缀式。代码如下:#include #include #include #define maxsize 1000typedef struct{/*栈的定义*/ char data[maxsize]; in原创 2016-08-09 19:37:19 · 274 阅读 · 0 评论 -
数据结构实验之栈二:一般算术表达式转换成后缀式
这道题的算法思想就是:先定义运算符的优先级;然后,1、设定运算符栈;2、将栈底元素设为'#';3、扫描表达式,若当前字符是操作数,则直接把它发送给后缀表达式;4、若当前字符为运算符且优先级大于栈顶运算符,则进栈,否则退出栈顶运算符并将其发送给后缀式。然后将当前运算符放入栈中;5、若当前字符是结束符,则将栈中的全部运算符依次发送给后缀式。6、若当前字符为"(",进栈;7、若当前字符为")",则从栈顶原创 2016-08-03 14:15:27 · 264 阅读 · 0 评论 -
数据结构实验之栈三:后缀式求值
这道题的算法思想就是:当输入的字符是数字字符时,将它转换成整数并压入栈中;当输入的字符是操作符时,将栈中的栈顶的两个元素取出并用这个运算符计算,然后将这两个元素出栈,将它们的运算结果进栈;最后输出栈顶元素即可。代码如下:#include #include #define maxsize 10000typedef struct{ int data[maxsize];原创 2016-08-03 20:29:48 · 290 阅读 · 0 评论 -
数据结构实验之栈四:括号匹配
这道题的算法思想就是:将(,[,{放入栈中,然后再让后面的括号与栈顶元素比较,若相同,则出栈,不同的话,输出no,并清空栈内元素;注意每次输出后一定要清空栈内元素。代码如下:#include #include #include #define maxsize 100using namespace std;typedef struct{ char data[ma原创 2016-08-04 10:06:33 · 286 阅读 · 0 评论 -
数据结构实验之栈五:下一较大值(一)
这道题的算法思想就是:将数组中的每个元素与其后的元素逐个比较,若小于后面的元素,则输出,并结束此次循环,若找不到,则输出-1。代码如下:#include int main(){ int n,m,i,j; int a[1000]; scanf("%d",&n); while(n){ scanf("%d",&m);原创 2016-08-04 10:48:57 · 298 阅读 · 0 评论 -
多项式求和
这道题的算法思想就是利用链表来处理大量的数据,减少递推的时间,从而节省时间。代码如下:#include #include struct node{/*建立一个双向链表*/ int data; struct node* pre,*next;};int main(){ int n,m,i; double s,d; scanf("原创 2016-08-05 15:54:26 · 449 阅读 · 0 评论 -
数据结构实验之栈六:下一较大值(二)
这道题的算法思想就是:通过建立一个结构体来管理输入的元素并记录输入元素的位置,将输入的元素依次与栈顶元素相比较,小于栈顶元素的则放入栈中,大于栈顶元素的将其放入结构体的另一个类型中,并将当前栈顶元素出栈。代码如下:#include #include using namespace std;struct node{ int data; int nextdata转载 2016-08-06 15:01:08 · 916 阅读 · 0 评论 -
数据结构实验之栈七:出栈序列判定
这道题的算法思想就是:让初始的的入栈序列的第一个入栈,然后比较栈顶元素与输入的出栈序列比较,若不相等则让初始得入栈序列继续入栈,直至找到与其相等的入栈序列元素,然后将栈顶元素出栈,输入的出栈序列向后移动一个,再进行比较。代码如下:#include #include #define maxsize 10020typedef struct{/*栈的定义*/ int dat原创 2016-08-06 19:01:37 · 290 阅读 · 0 评论 -
数据结构实验之栈八:栈的基本操作
这道题主要是考察栈的进栈和出栈操作,需要注意的是输出是要注意输出的格式,看清题目要求。代码如下:#include #include #define maxsize 100using namespace std;typedef struct{/*栈的定义*/ int data[maxsize]; int top;}Seqstack;Seqstack原创 2016-08-09 09:41:40 · 262 阅读 · 0 评论 -
数据结构实验之栈:行编辑器
这道题的算法思想就是:利用栈只能在其一端操作的思想,通过建立栈,比较输入字符来进行入栈和出栈。代码如下:#include #include #include #define maxsize 255typedef struct{/*栈的定义*/ char data[maxsize]; int top;}Seqstack;Seqstack *Init原创 2016-08-09 10:36:37 · 363 阅读 · 0 评论 -
进制转换
这道题的算法思想就是:把n%r入栈,再把n=n/r;直到n等于0,注意输出是将大于等于10和小于等于-10的数转换为相应的ascii值;并判断n是否为0,(因为忘记判断,错了好几次)。代码如下:#include #include #define maxsize 100typedef struct{/*栈的定义*/ int data[maxsize]; int原创 2016-08-09 15:07:40 · 226 阅读 · 0 评论 -
数据结构实验之栈一:进制转换
代码如下:#include #include #define MAXSIZE 100typedef struct{/*栈的定义*/ int data[MAXSIZE]; int top;}Seqstack;Seqstack *Initstack(){/*栈的初始化*/ Seqstack *s; s=(Seqstack *)malloc原创 2016-08-02 18:42:29 · 317 阅读 · 0 评论