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);
}