我需要基于一个链表结构创建一个堆栈,该链表结构可以具有多个不同数据类型的节点,因此,例如,一个节点可以是一个可以链接到用户定义的另一种数据类型的字符。
我目前已将我的堆栈DS设置为:
template <class pointType>
class stackType {
private:
struct StackNode {
StackNode *next;
pointType data;
};
StackNode *top;
和我这样的自定义数据类型
template<typename T>
class pointType {
private:
T x;
T y;
此后,我可以生成一个可以使用另一个堆栈计算的中缀表达式,问题是我认为我不能这样做,因为我必须定义默认情况下堆栈将使用的数据类型。
因为有混淆,所以我的实验室问题逐字记录
Practices on Application of Stacks.
1. Modify the class PointType by overloading these arithemetic operators.
– = (we have done in Lab 3)
– - : subtract two points (X = X1 -X2, Y = Y1 -Y2)
– * : multiply two points (X = X1 *X2, Y = Y1*Y2)
– / : divide two points (X = X1 / X2, Y = Y1 / Y2)
2. Design a class StackType by modifying the class StackPOINTS in which each element can be
any type, such as primitive data types and the type of the user defined data type: PointType.
3. Test your design by building:
– an integer stack
– a floating point stack
– a character stack
– a string stack
– an arithmetic operator stack
– a pointType stack
– an infix expression of A + B * C / ( D - E )
更多详细信息将是我已经完成的大部分工作,我可以制作任何类型的堆栈,因为该堆栈仅使用该类型,这使我不禁要设置重载运算符和infix表达式,这显然意味着我需要为操作符做一些包含pointType数据和字符的操作,并且可能需要使用解决带有堆栈的中缀表达式的方法进行读取和计算,问题是我不太清楚该怎么做。之所以能够做到这一点,是因为我再也无法真正弄清楚如何在堆栈中链接两种类型的元素