smemamian
جمعه 03 آذر 1391, 22:44 عصر
سلام دوستان
این برنامه یک مثال برای pop و push یک استک(پشته) هست .
#include <cstdlib>
#include <iostream>
using namespace std;
#define maxlen 80
class stack{
char str1[maxlen];
int first ;
public:
void clear(void);
char top(void);
int empty(void);
int full(void);
void push(char chr);
char pop(void);
};
void stack::clear(void)
{
first = 0 ;
}
char stack::top(void)
{
return (str1[first]);
}
int stack::empty(void)
{
return (first == 0);
}
int stack::full(void)
{
return (first == maxlen-1);
}
void stack::push(char chr)
{
str1[++first] = chr ;
}
char stack::pop(void)
{
return (str1[first--]);
}
int main(int argc, char *argv[])
{
stack mystack ;
char str[11] = "0123456789" ;
int length;
mystack.clear();
cout<<"\n load character data on stack" << endl ;
length =strlen(str);
for (int i=0 ; i<length; i++){
if (!mystack.full())
mystack.push(str[i]);
cout<<str[i]<<endl;
}
cout << "\n unload character data from stack" <<endl;
while(!mystack.empty())
cout << mystack.pop() << endl;
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
چند سوال داشتم :
1- خط 55 چگونه عمل می کنه ؟ مثلاً اگر i برابر با 2 باشد وقتی به push می رود چه می شود ؟
2- از خط 36 تا 39 chr نباید (return (chr بشود ؟
3- void رو سرچ کردم و مطالب مختلفی رو خوندم ولی در برنامه ها متوجه نمیشم کارش چیه ؟ مثلاً خط 12 !
این برنامه یک مثال برای pop و push یک استک(پشته) هست .
#include <cstdlib>
#include <iostream>
using namespace std;
#define maxlen 80
class stack{
char str1[maxlen];
int first ;
public:
void clear(void);
char top(void);
int empty(void);
int full(void);
void push(char chr);
char pop(void);
};
void stack::clear(void)
{
first = 0 ;
}
char stack::top(void)
{
return (str1[first]);
}
int stack::empty(void)
{
return (first == 0);
}
int stack::full(void)
{
return (first == maxlen-1);
}
void stack::push(char chr)
{
str1[++first] = chr ;
}
char stack::pop(void)
{
return (str1[first--]);
}
int main(int argc, char *argv[])
{
stack mystack ;
char str[11] = "0123456789" ;
int length;
mystack.clear();
cout<<"\n load character data on stack" << endl ;
length =strlen(str);
for (int i=0 ; i<length; i++){
if (!mystack.full())
mystack.push(str[i]);
cout<<str[i]<<endl;
}
cout << "\n unload character data from stack" <<endl;
while(!mystack.empty())
cout << mystack.pop() << endl;
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
چند سوال داشتم :
1- خط 55 چگونه عمل می کنه ؟ مثلاً اگر i برابر با 2 باشد وقتی به push می رود چه می شود ؟
2- از خط 36 تا 39 chr نباید (return (chr بشود ؟
3- void رو سرچ کردم و مطالب مختلفی رو خوندم ولی در برنامه ها متوجه نمیشم کارش چیه ؟ مثلاً خط 12 !