Example #1
0
int main(int argc,char** argv)
{
	LList* l = new LList();
	l->add(1)->p()->add(2)->p()->add(4)->p()->add(10)->p()->add(80)->p();
	l->reverse()->p();
	l->remove(44)->p()->remove(2)->p()->remove(10)->p()->remove(80)->p()->remove(1)->p()->remove(4)->p()->remove(99)->p();


	StackL* s = new StackL();
	s->push(1)->p()->push(2)->p()->push(5)->p()->push(3)->p();
	s->pop();
	s->p();
	s->pop();
	s->p();
	s->pop();
	s->p();
	s->pop();
	s->p();

	QueueL* q = new QueueL();
	q->enq(1)->p()->enq(2)->p()->enq(5)->p();
	q->dq()->p()->dq()->p()->dq()->p();

	return 0;
}
int evaluatePostfix(char* exp) {
	StackL<int> *stack = new StackL<int>();

	int interRes, val1, val2;

	for(int i = 0; exp[i]; i++) {
		interRes = 0;
		if(isOperand(exp[i])) {
			stack->push((int)exp[i] - '0');
		} else {
				val1 = stack->pop();
				val2 = stack->pop();

				switch(exp[i]) {
					case '+': 
							interRes = val2 + val1;
							break;	
					case '-': 
							interRes = val2 - val1;
							break;			
					case '*': 
							interRes = val2 * val1;
							break;	
					case '/': 
							interRes = val2 / val1;
							break;	
					case '^': 
							interRes = val2 ^ val1;
							break;	
				}

				stack->push(interRes);
			}

		}

	int res = stack->pop();
	delete stack;
	return res;
}
void reverse(char* exp) {

	StackL<char> *stack = new StackL<char>();

	for(int i = 0; exp[i]; i++) {
		stack->push(exp[i]);
	}

	for(int i = 0; exp[i]; i++) {
		exp[i] = stack->pop();
	}

	delete stack;
}
int main(void) {

	StackL<int> *testObj = new StackL<int>();

	for(int i = 0; i< 100000; i++) {
		testObj->push(rand() * 100 + 1);	
	}
	
	testObj->printStack();

	cout<<testObj->pop()<<endl;

	testObj->printStack();
	cout<<testObj->peek()<<endl;
	testObj->printStack();

	delete testObj;

	return 0;
}