读书人

vc++6.0中的老师给的题目哪位大侠

发布时间: 2012-09-16 17:33:16 作者: rapoo

vc++6.0中的,老师给的题目,哪位大侠可以帮忙告诉我呀。求教呀!!
3、假设以带头结点的单循环链表做非递减有序
线性表的存储结构。请设计一个时间复杂度为
O(n2) ,删除表中所有数值相同的多余元素,并
释放结点空间。例如:
(7,10,10,21,30,42,42,42,51,70)
经算法操作后变为 :
(7,10,21,30,42,51,70)
我是新手,好多不懂的、、就.cpp和.h的区别还都不是很了解,,,
求高手不吝赐教、、、

[解决办法]
有帮人做作业了,罪过

C/C++ code
typedef struct _MyListNode{    int nData;    struct _MyListNode * pNext;} MyListNode, *PMyListNode;class MyList{public:    MyList()    {        pHead = new MyListNode();        pHead->nData = 0;        pHead->pNext = NULL;        pTail = NULL;    }    ~MyList()    {        MyListNode * pTmp = pHead;        while (pTmp != NULL)        {            pHead = pTmp->pNext;            delete pTmp;            pTmp = pHead;        }        pHead = NULL;    }    void Append(int num)    {        MyListNode * pTmp = new MyListNode();        pTmp->nData = num;        pTmp->pNext = NULL;        if (pTail != NULL)        {            pTail->pNext = pTmp;        }        else        {            pHead->pNext = pTmp;        }        pTail = pTmp;    }    void Print()    {        MyListNode * pTmp = pHead->pNext;        while (pTmp != NULL)        {            cout << pTmp->nData << " ";            pTmp = pTmp->pNext;        }        cout << endl;    }    void RemoveRepeat()    {        MyListNode * pNode = pHead->pNext;        while (pNode != NULL)        {            MyListNode * pTmp = pNode->pNext;            while (pTmp != NULL && pNode->nData == pTmp->nData)            {                pNode->pNext = pTmp->pNext;                delete pTmp;                pTmp = pNode->pNext;            }            pNode = pTmp;        }    }private:    MyListNode * pHead;    MyListNode * pTail;};int main(){    MyList lst;    lst.Append(7);    lst.Append(10);    lst.Append(10);    lst.Append(21);    lst.Append(30);    lst.Append(42);    lst.Append(42);    lst.Append(42);    lst.Append(51);    lst.Append(70);    lst.Print();    lst.RemoveRepeat();    lst.Print();    return 0;} 

读书人网 >C++

热点推荐