zoukankan      html  css  js  c++  java
  • 非递减单链表删除重复元素 转

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

    http://blog.csdn.net/matrixcl/article/details/6853458

  • 相关阅读:
    linux 经常使用网络命令
    ExtJS学习--------Ext.Element中其它操作方法学习
    对“使用MyEclipse,写的jsp代码因有汉字而无法保存”问题的解决
    SQL之case when then用法
    SQL之CASE WHEN用法详解[1]
    [SQL case when的两种用法]
    在delphi中生成GUID
    在delphi中生成GUID/自动获取临时表名......
    Delphi中Owner和Parent的区别
    Delphi处理数据网格DBGrid的编辑框 获取还没有提交到数据集的字段文本
  • 原文地址:https://www.cnblogs.com/androllen/p/2843689.html
Copyright © 2011-2022 走看看