堆栈操作(主功能) 我在C++中实现了堆栈基本操作,我写了函数,但是我不知道如何实现这个函数,以便从堆栈中看到值。
头文件堆栈操作(主功能) 我在C++中实现了堆栈基本操作,我写了函数,但是我不知道如何实现这个函数,以便从堆栈中看到值。,c++,data-structures,stack,C++,Data Structures,Stack,头文件 #ifndef HEADER_H_ #define HEADER_H_ #define DIM 15 typedef int Atom; struct Element { Atom data; Element *link; }; typedef Element* LinkedStack; void initS(LinkedStack &S); void push(LinkedStack &S, Atom a); bool isEmpty2(Linke
#ifndef HEADER_H_
#define HEADER_H_
#define DIM 15
typedef int Atom;
struct Element {
Atom data;
Element *link;
};
typedef Element* LinkedStack;
void initS(LinkedStack &S);
void push(LinkedStack &S, Atom a);
bool isEmpty2(LinkedStack &S);
void pop2(LinkedStack &S);
Atom top2(Stack &S);
#endif
函数文件
void initS(LinkedStack &S)
{
S = nullptr;
}
void push(LinkedStack &S, Atom a)
{
Element*nou = new Element;
nou->data = a;
nou->link = S;
S = nou;
}
bool isEmpty2(LinkedStack &S)
{
if (S == 0)
return true;
else return false;
}
void pop2(LinkedStack &S)
{
LinkedStack aux = S;
S = S->link;
delete(aux);
}
Atom top2(LinkedStack &S)
{
if (isEmpty2(S))
return Atom();
return S->data;
}
我是如何实现主函数的。我不知道如何查看值,例如如果我写cout<
#include <iostream>
#include "header.h"
using namespace std;
int main()
{
LinkedStack S;
initS(S);
push(S, 2);
push(S, 4);
push(S, 6);
push(S, 7);
push(S, 10);
return 0;
}
After I compile the program I don't see nothing in console.How to see the values from stack?
#包括
#包括“header.h”
使用名称空间std;
int main()
{
LinkedStack S;
初始化;
推(S,2);
推(S,4);
推(S,6);
推(S,7);
推(S,10);
返回0;
}
编译程序后,我在控制台中什么也看不到。如何从堆栈中查看值?
根据函数名,您认为哪些函数可以用来检查堆栈顶部,或者弹出一个元素以便查看下一个元素?pop2,我通过修改这个函数解决了这个问题。它现在返回一个int,并且可以工作。但是我不知道如何编写这样一个函数:要成为一个空函数,您应该使用top2
检查顶部元素而不弹出它,而pop2
应该只弹出而不返回任何内容。(名称中的“2”似乎没有意义。)也就是说,您需要同时使用这两个函数才能打印整个堆栈。谢谢!我解决了。