All pastes #757026 Raw Edit

Stuff

public text v1 · immutable
#757026 ·published 2007-10-31 22:25 UTC
rendered paste body
#include <iostream>
using namespace std;

class cNode {
private:
	cNode *m_pPreviousNode;
	cNode *m_pNextNode;
	char m_cLetter;

public:
	cNode();
	~cNode();
	void setLetter(char cLetter);
	void displayLetter();
	cNode *addNode(cNode *pPreviousNode);
	cNode *getPreviousNode();
	cNode *getNextNode();
	cNode *deleteNode();
	
};
cNode *deleteList();
cNode::cNode() {
	m_pPreviousNode = NULL;
	m_pNextNode = NULL;
}

cNode::~cNode() {
	m_pPreviousNode = NULL;
	m_pNextNode = NULL;
}

void cNode::setLetter(char cLetter) {
	m_cLetter = cLetter;
}

void cNode::displayLetter() {
	cout << m_cLetter;
}

cNode *cNode::getPreviousNode() {
	return m_pPreviousNode;
}

cNode *cNode::getNextNode() {
	return m_pNextNode;
}

cNode *cNode::addNode(cNode *pHead) {
	if(pHead == NULL) {
		m_pNextNode = NULL;
	} else {
		m_pNextNode = pHead;
	}
	return pHead;
}

cNode *cNode::deleteNode() {
	cNode *pNewHead;
	pNewHead = m_pPreviousNode;
	m_pPreviousNode = NULL;
	return pNewHead;
}

void traverseList(cNode *pHead) {
	cNode *pPreviousNode = pHead;

	while(pPreviousNode != NULL) {
		pPreviousNode->displayLetter();
		pPreviousNode = pPreviousNode->getPreviousNode();
	}
}

void reverseList(cNode *pHead) {
	while(pHead != NULL) {
		pHead->displayLetter();
		pHead = pHead->getNextNode();
	}
}

void deleteList(cNode *pHead) {
	cNode *pOldHead;

	while(pHead != NULL) {
		pOldHead = pHead;
		pHead = pHead->deleteNode();
		delete pOldHead;
	}
}

void main() {
	cNode *pHead = NULL;
	cNode *tail;
	char szUserString[80] = {0}, *pChar;

	cout << "Please enter your name: ";
	cin.getline(szUserString,79);

	pChar = szUserString;

	while(*pChar != '\0') {
		cNode *pCurrentObject = new cNode;
		pCurrentObject->setLetter(*pChar);
		
		if(pHead == NULL) {
			pHead = tail = pCurrentObject;
		} else {
			tail = tail->addNode(pCurrentObject);
		}
		pChar++;
	}

	//traverseList(pHead);
	reverseList(pHead);
	cout << endl;
	deleteList(pHead);
}