堆栈操作(主功能) 我在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”似乎没有意义。)也就是说,您需要同时使用这两个函数才能打印整个堆栈。谢谢!我解决了。