Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по стеку

9.9K
04 июня 2008 года
maxxi
35 / / 20.06.2007
Всем доброго времени суток!

У меня вопрос по стеку.
Есть некий template , Stack1.h
Код:
#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&#252;r top und pop: Stack ist nicht leer

    void push(const T &x);             // x auf den Stack legen
    // Vorbedingung f&#252;r push: Stack ist nicht voll

   private:
    unsigned int anzahl;
    T array[maxSize];           // Beh&#228;lter f&#252;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



И есть непосредственно класс работы со стеком, 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;
 }



Как можно сделать проверку, содержтся какое нибудь число, например, 101 в стеке?

Есть ли специальная функция для этого????


Спасибо
341
05 июня 2008 года
Der Meister
874 / / 21.12.2007
Und welche standardisierte Funktionen hier sein k&#246;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&#228;lften (den Methode der Gabel), oder dieser Methode zu finden
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог