#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// ein Stack-Template
#ifndef simstack1_h
#define Stack1_h Stack1_h
#include<cassert>
const unsigned int maxSize=20; // siehe Text
template <class T>
class simpleStack {
public:
simpleStack() : anzahl(0){}
bool empty() const { return anzahl == 0;}
bool full() const { return anzahl == maxSize;}
unsigned int size() const { return anzahl;}
void clear() { anzahl=0;} // Stack leeren
const T& top() const; // letztes Element sehen
void pop(); // Element entfernen
// Vorbedingung für top und pop: Stack ist nicht leer
void push(const T &x); // x auf den Stack legen
// Vorbedingung für push: Stack ist nicht voll
private:
unsigned int anzahl;
T array[maxSize]; // Behälter für Elemente
};
// noch fehlende Methoden-Implementierungen
template <class T>
const T& simpleStack<T>::top() const {
assert(!empty());
return array[anzahl-1];
}
template <class T>
void simpleStack<T>::pop() {
assert(!empty());
--anzahl;
}
template <class T>
void simpleStack<T>::push(const T &x) {
assert(!full());
array[anzahl++] = x;
}
#endif // Stack1_h
// TODO: reference additional headers your program requires here
Вопрос по стеку
У меня вопрос по стеку.
Есть некий template , Stack1.h
Код:
И есть непосредственно класс работы со стеком, Stack.cpp
Код:
#include<iostream>
#include"Stack1.h"
using namespace std;
int main() {
simpleStack<int> einIntStack;
int i=100;
while(!einIntStack.full())
einIntStack.push(i++);
cout << "Quantity of elements : " << einIntStack.size() << endl;
cout << "top element: "
<< einIntStack.top() << endl;
cout << "print all Elements: " << endl;
while(!einIntStack.empty()) {
i = einIntStack.top();
einIntStack.pop();
cout << i << '\t';
}
cout << endl;
}
#include"Stack1.h"
using namespace std;
int main() {
simpleStack<int> einIntStack;
int i=100;
while(!einIntStack.full())
einIntStack.push(i++);
cout << "Quantity of elements : " << einIntStack.size() << endl;
cout << "top element: "
<< einIntStack.top() << endl;
cout << "print all Elements: " << endl;
while(!einIntStack.empty()) {
i = einIntStack.top();
einIntStack.pop();
cout << i << '\t';
}
cout << endl;
}
Как можно сделать проверку, содержтся какое нибудь число, например, 101 в стеке?
Есть ли специальная функция для этого????
Спасибо
dieser Methode zu finden
Und welche standardisierte Funktionen hier sein können? Die Angaben werden im Massiv bewahrt, bedeutet, man kann alle Elemente mit aufgegeben Bedeutung vergleichen, oder, von seiner Methode der Teilung in zwei Hälften (den Methode der Gabel), oder