PDA

View Full Version : سوال: stack



hafez1
پنج شنبه 21 اردیبهشت 1391, 10:48 صبح
برنامه ای که کداشو پایین نوشتم کلاسی از stack هست .که عمل pop و push را انجام می دهد.


#include <iostream>
using namespace std;
template <class Type>
class Stack{
public:
Stack(int=10);
~Stack();
bool push(Type item);
Type pop();
private:
Type *s;
int top;
int size;
};

template <class Type>
Stack<Type> :: Stack(int length){
s = new Type[length];
top=0;
size=length;
}
template <class Type> Stack<Type> :: ~Stack()
{
delete [] s;
}
template <class Type>
bool Stack<Type> :: push(Type item)
{
if (top >= size) return false;
s[top++]=item;
return true;
}
template <class Type>
Type Stack<Type> :: pop(){ if(top) return s[--top];
return NULL;
}

int main()
{
Stack<int> mystack;
for(int i=0;i<5;i++)
cout << mystack.push(i)<<endl;
for(int i=0;i<3;i++)
cout << mystack.pop() << endl;
}



می خوام این برنامه رو تغییر بدم به گونه ای که برای pop و push کردن از لینک لیست ها استفاده کنم.
یعنی یه لینک لیست ایجاد کنم برای pushبه اولش اضافه بشه و برای pop از اولش حذف بشه در ضمن مقدار pop و push شده نمایش داده شود.همون طور که در برنامه بالا از template استفاده کردم اینجام باید استفاده بشه.برنامه رو چگونه تغییر بدم.