下面我有一些代码。这段代码是一个基本的push/pop堆栈类,我将其创建为一个模板,以使某人能够推送/pop堆栈。我有一个家庭作业,我现在要做的是创建一个具有多个值的堆栈。
所以我希望能够创建一个堆栈,它基本上可以发送三个整数,我也可以推/弹出这些整数。我在寻找的是关于这应该如何工作的理论,我不想让别人帮我做作业。
情况是,我们正在处理部件。因此,用户将输入序列号(int)、制造日期(int)和lotnum(int)。因此,我的问题是:
>
/****************************************************************************
Inventory class.
Chad Peppers
This class creates a object for stacking nodes
In addition, there should be member functions to perform the following
operations:
- Push to the stack
- Pop to the stack
- Function to check if empty
****************************************************************************/
// Specification file for the DynIntStack class
template <class T>
class Inventory
{
private:
// Structure for stack nodes
struct StackNode
{
T value; // Value in the node
StackNode *next; // Pointer to the next node
};
StackNode *top; // Pointer to the stack top
public:
// Constructor
Inventory()
{ top = NULL; }
// Destructor
~Inventory();
// Stack operations
void push(T);
void pop(T &);
bool isEmpty();
};
/*************************************************************************
Basic class constructor.
Input Parameters: Information to build the stack
Return Type: void
*************************************************************************/
template<class T>
Inventory<T>::~Inventory()
{
StackNode *nodePtr, *nextNode;
// Position nodePtr at the top of the stack.
nodePtr = top;
// Traverse the list deleting each node.
while (nodePtr != NULL)
{
nextNode = nodePtr->next;
delete nodePtr;
nodePtr = nextNode;
}
}
/*************************************************************************
Function to push an item in the stack
Input Parameters: T
Return Type: void
*************************************************************************/
template<class T>
void Inventory<T>::push(T num)
{
StackNode *newNode; // Pointer to a new node
// Allocate a new node and store num there.
newNode = new StackNode;
newNode->value = num;
// If there are no nodes in the list
// make newNode the first node.
if (isEmpty())
{
top = newNode;
newNode->next = NULL;
}
else // Otherwise, insert NewNode before top.
{
newNode->next = top;
top = newNode;
}
}
/*************************************************************************
Function to pop an item in the stack
Input Parameters: T
Return Type: void
*************************************************************************/
template<class T>
void Inventory<T>::pop(T &num)
{
StackNode *temp; // Temporary pointer
// First make sure the stack isn't empty.
if (isEmpty())
{
cout << "The stack is empty.\n";
}
else // pop value off top of stack
{
num = top->value;
temp = top->next;
delete top;
top = temp;
}
}
/*************************************************************************
Basic class deconstructor.
Input Parameters: None
Return Type: void
*************************************************************************/
template<class T>
bool Inventory<T>::isEmpty()
{
bool status;
if (!top)
status = true;
else
status = false;
return status;
}
您可以创建一个由3个int值聚合而成的结构,然后在这些行上实例化该结构的模板清单
#include "Inventory.h"
//create an aggregate structure
struct ProductData {
int serial_num;
int manufacture_date;
int lot_num;
}
//instantiate Inventory for ProductData
Inventory<ProductData> stack;
问题内容: 我想在Java中实现具有多个值的哈希表,即 并且将返回2倍的值。 我怎样才能做到这一点? 问题答案: 您可以改用Multimap。它在列表中为一个键保留多个值。在commons- collection 和Guava中有实现。 这类似于使用值是列表的Hashmap,但是不必显式创建列表。 自己动手做的同一示例如下所示: 请注意,您可以将Multimap用作构建器,并对其调用asMap以返
我试图使用Laravel构建一个(稍微复杂的)订阅服务。 订阅类型为:20份早餐的早餐订阅,在注册后30天内使用。 例如,如果用户在4月1日注册早餐订阅,他可以选择任何20天,直到4月30日。 我制作了以下表格和相应的模型: 用户模型和表 订阅表和型号 订阅用户透视(?)带有软删除的表 我已经用belongsToMany关系更新了相应的模型 用户: 订阅模式 我需要帮助解决的问题1。数据库/模型结
我已经创建了一个类似上面的类,我希望能够使用相同的类使用'colour'作为这个类的替代,如下面。 有没有一种方法可以简单地创造出来?
问题内容: 有没有一种方法可以使用IN子句进行CASE语句? 问题答案: 是的。您需要使用表达式的“搜索”形式而不是“简单”形式
问题内容: 我在数据库中有一个表,记录如下: 我的用户为每个匹配项选择一个猜测,我有一个函数可以根据匹配结果计算猜测的结果:如果猜测正确,则结果为(1)如果错误,则结果为(2 ),如果比赛还没有结束,结果将是(默认为0),例如,我有11种猜测的可能性(一次可能有多个正确的猜测):如果我有一场比赛,id = 125,我拥有全部除了8,11之外的其他猜测都是错误的,因此我应该为具有匹配ID的所有匹配更
问题内容: 我有一个查询说 ,我想要的是使用where子句或其他任何方式显示多个记录,以便获得以下数据。 姓名编号 我试着用 在clause.ie 或等,但没有作品。 问题答案: 只需使用一个子句 您也可以使用OR(仅用于提供信息,在这种情况下,我将不使用此功能) 如果您的where子句中有其他条件,请不要忘记在“或”周围加上圆括号。