大一新生求助数据结构题!
题目:编写一个函数,函数的形参为一个栈和一个运算符,函数体将栈顶元素出栈赋值给a1,再将栈顶元素出栈赋值给a2,用a1和a2根据运算符做计算,最后把计算的结果入栈。本人因之前从未接触过C语言,基础较差,国庆假期已折腾了三天却毫无进展,望大神看到能给予我帮助,万分感谢! 楼主你好,这个用C语言写,还是C++啊! C语言好像没栈,还得自己写栈 先给你个思路把!
1. 函数不用说,参数都给出来了,一个栈,一个运算符,这里运算符用 char
2 函数里面switch(char)
3. 做运算就好了 我叫MD 发表于 2019-10-4 21:05
楼主你好,这个用C语言写,还是C++啊! C语言好像没栈,还得自己写栈
你好,我们书中的《数据结构》代码是用C语言写的。 讲究的乔治 发表于 2019-10-4 21:08
你好,我们书中的《数据结构》代码是用C语言写的。
我的C语言基础不是很好,栈这一节才刚开始学,也不是很懂,老师却布置了这道题,很无奈啊 讲究的乔治 发表于 2019-10-4 21:09
我的C语言基础不是很好,栈这一节才刚开始学,也不是很懂,老师却布置了这道题,很无奈啊
自己的栈结构写好了吗? 我叫MD 发表于 2019-10-4 21:10
自己的栈结构写好了吗?
我不想写栈了 我用 STL 的栈给你模拟一下你就懂了很简单 我叫MD 发表于 2019-10-4 21:13
我不想写栈了 我用 STL 的栈给你模拟一下你就懂了很简单
首先很感谢指导,我才刚开始这门课程,之前也没有接触过编程,不是很懂 #include <iostream>
#include <stack>
using namespace std;
void Calculate(stack<int> &st, char ch)
{
int a1 = st.top();
st.pop();
int a2 = st.top();
st.pop();
switch (ch)
{
case '+':
{
st.push(a1 + a2);
break;
}
case '-':
{
st.push(a1 - a2);
break;
}
case '*':
{
st.push(a1 * a2);
break;
}
case '/':
{
st.push(a1 / a2);
break;
}
}
}
int main()
{
//定义栈变量
stack<int> st;
//向栈中插入结构元素
st.push(1);
st.push(3);
st.push(11);
st.push(20);
st.push(8);
Calculate(st, '-');
int a = st.top();
system("pause");
return 0;
}
自己随便写的,大概就这个意思吧 我叫MD 发表于 2019-10-4 21:25
自己随便写的,大概就这个意思吧
我还需要在这代码的基础上添加栈,是吗? 讲究的乔治 发表于 2019-10-4 21:34
我还需要在这代码的基础上添加栈,是吗?
是的,我相当于用的别人的栈,C语言的自己写栈,然后才可以用栈 我叫MD 发表于 2019-10-4 21:35
是的,我相当于用的别人的栈,C语言的自己写栈,然后才可以用栈
我将代码导入编译器,它这样报错: D:\Develop\c\zhan\main.c|1|fatal error: iostream: No such file or directory|
我用的C++的栈 main.c 改成 main.cpp就行了 还有 你用的哪个编译器 我叫MD 发表于 2019-10-4 21:40
还有 你用的哪个编译器
Code:Blocks 我们要求用C语言写,那那些部分我需要对应的修改呢?
讲究的乔治 发表于 2019-10-4 21:42
Code:Blocks 我们要求用C语言写,那那些部分我需要对应的修改呢?
自己把栈结构写出来,然后把我的栈换成你的栈,头文件换成C语言的,这样就行了 我叫MD 发表于 2019-10-4 21:49
自己把栈结构写出来,然后把我的栈换成你的栈,头文件换成C语言的,这样就行了
好嘞,感谢感谢。我再研究研究 讲究的乔治 发表于 2019-10-4 22:05
好嘞,感谢感谢。我再研究研究
麻烦给个最佳答案 不懂的话 可以在私信我 我叫MD 发表于 2019-10-4 22:11
不懂的话 可以在私信我
好呀,非常感谢,咱们可以加个联系方式吗?更加方便
页:
[1]
2