[ create a new paste ] login | about

Link: http://codepad.org/950oTNEQ    [ raw code | output | fork ]

C++, pasted on Mar 5:
#include <iostream>

class IntNode
{
	public:
		IntNode() {}
		IntNode(int data, IntNode* link) : _data(data), _link(link) {}
		IntNode* getLink() const { return _link; }
		int getData () const { return _data; }
		void setData(int & data) { _data = data; }
		void setLink(IntNode * link) { _link = link; }
		void addNode(int data)
		{
			setLink(new IntNode(data, NULL) );
		}
		void insert(IntNode* link, int & data) { link->setLink( new IntNode(data, link->getLink()) ); }
		IntNode* search(IntNode* head, int target)
		{

			IntNode* temp = head;
			
			if(temp == NULL)
				return NULL;
			else
			{
				while(temp->getData() != target && temp->getLink() != NULL)
					temp = temp->getLink();

				if(temp->getData() == target)
					return temp;
				else
					return NULL;
			}
		}

	private:
		int _data;
		IntNode* _link;
};

class Stack
{
	public:
		Stack(){ head = new IntNode(0,NULL);}

		void push(const int & X)
		{
			head->addNode(X);
		}
		int top ()
		{
			IntNode* t = head->getLink();
			return t->getData();
		}
		void pop()
		{
			if( head->getLink() != NULL)
			{
				IntNode* t = head->getLink();
				head->setLink(t->getLink());

				delete t; 
			}

		}
		bool isEmpty(){ if(head->getLink() == NULL) return true; return false; }
	private:
		IntNode* head;
};
int main()
{
	Stack* st = new Stack;

	st->push(5);
	st->push(6);
	st->push(7);
	st->push(8);
	for(int i = 0; i <= 3; i++)
	{
		std::cout << st->top() << " ";
//		st->pop();
	}
	st->pop();
	std::cout << st->top();
/*	for(int i = 0; i <= 5; i++)
	{
		std::cout << st->top() << " ";
		st->pop();
	}*/


	delete st;

	return 0;
}


Output:
1
Segmentation fault


Create a new paste based on this one


Comments: