青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Code Knight

Programming is so cool
隨筆 - 52, 文章 - 0, 評論 - 14, 引用 - 0
數據加載中……

一道面試題

最近面試遇到一道很懷念的題目,約瑟夫環,由于代碼較多沒有當時寫在卷上,說了說思路,下來用模板實現了一下,使用雙向循環鏈表,每到第五個kick out。
注:模板未考慮非常規自定義類型的淺拷貝問題;另外代碼沒有優化,delnode效率有提升空間,有興趣的改改看。

  1template<class T>
  2struct SNode
  3{
  4    SNode(T dNode)
  5    {
  6        dData = dNode;
  7    }

  8    T dData;
  9    SNode<T>* pNext;
 10    SNode<T>* pPre;
 11}
;
 12
 13template<class T>
 14class CDoubleList
 15{
 16public:
 17    CDoubleList(T dDode);
 18    ~CDoubleList();
 19public:
 20    bool AddNode(T dNode);
 21    SNode<T>* DelNode(T dNode);
 22    int  GetSize(){return m_nListSize;}
 23    void PrintList();
 24
 25    SNode<T>* GetHead(){return m_pHead;}
 26private:
 27    SNode<T>* m_pHead;
 28    SNode<T>* m_pTail;
 29
 30    int          m_nListSize;
 31}
;
 32
 33template<class T>
 34CDoubleList<T>::CDoubleList(T dHead):m_nListSize(0)
 35{
 36    m_pHead = new SNode<T>(dHead);
 37    if(!m_pHead)
 38    {
 39        // error
 40        return;
 41    }

 42
 43    m_pTail = m_pHead;
 44    m_pHead->pPre = m_pTail;
 45    m_pHead->pNext = m_pTail;
 46    m_pTail->pPre = m_pHead;
 47    m_pTail->pNext = m_pHead;
 48
 49    ++m_nListSize;
 50}

 51
 52template<class T>
 53CDoubleList<T>::~CDoubleList()
 54{
 55    SNode<T>* pStart = m_pHead;
 56    for(int i = 0; i < m_nListSize; ++i)
 57    {
 58        DelNode(pStart->dData);
 59    }

 60}

 61
 62template<class T>
 63bool CDoubleList<T>::AddNode(T dNode)
 64{
 65    if(GetSize() < 1)
 66        return false;
 67
 68    SNode<T>* pNewNode = new SNode<T>(dNode);
 69    pNewNode->pPre = m_pTail;
 70    pNewNode->pNext = m_pTail->pNext;
 71    m_pTail->pNext = pNewNode;
 72    pNewNode->pNext->pPre = pNewNode;
 73
 74    m_pTail = pNewNode;
 75
 76    ++m_nListSize;
 77
 78    return true;
 79}

 80
 81template <class T>
 82SNode<T>* CDoubleList<T>::DelNode(T dNode)
 83{
 84    static SNode<T>* pNode = m_pHead;
 85    // 遍歷,找到相同的刪除
 86    for(int i = 0; i < m_nListSize; ++i)
 87    {
 88        if(pNode->dData == dNode)
 89        {
 90            if(pNode == m_pHead)
 91            {
 92                // 刪除頭,特殊處理
 93                pNode->pPre->pNext = pNode->pNext;
 94                pNode->pNext->pPre = pNode->pPre;
 95
 96                m_pTail = pNode->pPre;
 97
 98                SNode<T>* pNewNode = pNode->pNext;
 99                delete pNode;
100
101                pNode = pNewNode;
102
103                m_pHead = pNode;
104
105                --m_nListSize;
106                return m_pHead;
107            }

108            else
109            {
110                pNode->pPre->pNext = pNode->pNext;
111                pNode->pNext->pPre = pNode->pPre;
112
113                SNode<T>* pNewNode = pNode->pNext;
114                delete pNode;
115
116                pNode = pNewNode;
117
118                --m_nListSize;
119
120                return pNode;
121            }

122        }

123
124        pNode = pNode->pNext;
125    }

126
127    return 0;
128}

129
130
131template <class T>
132void CDoubleList<T>::PrintList()
133{
134    SNode<T>* pNode = m_pHead;
135    for(int i = 0; i < m_nListSize; ++i)
136    {    
137        cout<<pNode->dData<<endl;
138
139        pNode = pNode->pNext;
140    }

141}
#include "list.h"
#include 
<iostream>
using namespace std;

void main()
{
    CDoubleList
<int> dList(1);
    
for(int i = 2; i < 10++i)
    
{
            dList.AddNode(i);
    }

    dList.PrintList();
    cout
<<"begin do something"<<endl;

    SNode
<int>* pStart= dList.GetHead();
    
while(dList.GetSize() != 1// 數到第五個人出局
    {
        
for(int i = 0; i < 4++i)
        
{
            
if(!pStart)
            
{
                
//error
            }


            pStart 
= pStart->pNext;
        }


        pStart 
= dList.DelNode(pStart->dData);
    }


    dList.PrintList();
    cout
<<"magic end"<<endl;

    getchar();
}

posted on 2010-04-12 15:55 Code Knight 閱讀(358) 評論(0)  編輯 收藏 引用 所屬分類: C++與編程之道


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品色网| 亚洲综合色视频| 欧美福利视频网站| 亚洲人体一区| 国模精品娜娜一二三区| 免费日韩成人| 欧美伊人久久大香线蕉综合69| 免费亚洲网站| 久久国产精品一区二区三区| a4yy欧美一区二区三区| 在线看日韩av| 亚洲免费不卡| 模特精品裸拍一区| 亚洲欧洲综合另类| 99这里只有精品| 亚洲精品社区| 亚洲欧美日韩一区| 久久超碰97人人做人人爱| 久久另类ts人妖一区二区| 麻豆久久精品| 亚洲精品久久久蜜桃| 一二美女精品欧洲| 午夜天堂精品久久久久| 久久gogo国模裸体人体| 久久亚洲二区| 欧美另类人妖| 久久国产精品色婷婷| 久久国内精品自在自线400部| 一区二区三区国产精品| 久久www成人_看片免费不卡| 亚洲欧美日韩一区二区三区在线观看| 一本久道综合久久精品| 久久精品欧美日韩精品| 欧美日韩国产麻豆| 韩国av一区二区三区| 欧美激情一二区| 欧美一区二区成人6969| 欧美日韩国产系列| 亚洲欧美日韩一区| 亚洲麻豆av| 欧美日韩视频专区在线播放 | 久久天天躁夜夜躁狠狠躁2022| 欧美在线观看天堂一区二区三区| 亚洲一级二级| 亚洲国产精品视频| 亚洲天堂免费观看| 欧美日韩中文字幕| 在线综合亚洲| 久久久久久久综合狠狠综合| 亚洲国产成人一区| 老司机精品视频一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 国产精品毛片一区二区三区| 亚洲一区在线看| 亚洲视频一区| 国产精品久久国产精品99gif| 国产综合香蕉五月婷在线| 欧美亚洲一区| 99在线热播精品免费99热| 国产日本欧美一区二区三区在线| 久久久久久穴| 国产精品久久9| 麻豆精品精华液| 国产一区二区三区电影在线观看| 91久久嫩草影院一区二区| 国产精品热久久久久夜色精品三区 | 日韩视频在线一区二区| 中国成人黄色视屏| 国产精品久久久久高潮| 一本久道久久久| 蜜桃伊人久久| 亚洲日本成人| 国产精品久久久久久超碰| 亚洲精品日韩一| 欧美日韩中文字幕精品| 欧美中文字幕在线| 麻豆精品一区二区综合av| 亚洲影院色无极综合| 一区在线播放| 女人色偷偷aa久久天堂| 美女脱光内衣内裤视频久久影院 | 亚洲视频欧美视频| 国产精品国产| 亚洲一区二区成人在线观看| 亚洲免费综合| 国产精品自拍在线| 久久九九久精品国产免费直播| 久久先锋资源| 欧美一级理论性理论a| 亚洲日本无吗高清不卡| 欧美成在线视频| 欧美一区二区三区免费视频| 欧美成人免费在线视频| 性做久久久久久免费观看欧美| 悠悠资源网久久精品| 欧美日韩国产一区精品一区| 一区二区日韩精品| 亚洲高清av在线| 久久国产视频网| 亚洲在线视频一区| 在线电影一区| 亚洲电影免费观看高清完整版| 国产免费亚洲高清| 欧美电影在线免费观看网站| 久久欧美肥婆一二区| 亚洲自拍偷拍视频| 亚洲免费福利视频| 最新国产乱人伦偷精品免费网站| 久久精品在线播放| 亚洲视频 欧洲视频| 亚洲人成网站在线播| 久久成人一区| 久久裸体视频| 美女精品在线观看| 亚洲人午夜精品免费| 亚洲第一精品福利| 亚洲高清自拍| 欧美大片一区二区三区| 亚洲天堂av图片| 久久精品亚洲精品| 欧美黄色免费网站| 亚洲国产精品高清久久久| 小嫩嫩精品导航| 久久成人18免费网站| 另类春色校园亚洲| 国产伦精品一区二区三区视频孕妇| 在线高清一区| 欧美黄网免费在线观看| 久久精品国产免费| 一色屋精品视频免费看| 麻豆91精品| 欧美国产一区二区三区激情无套| 亚洲精品1区2区| 欧美freesex8一10精品| 性久久久久久| 国产亚洲一区精品| 久久九九国产精品怡红院| 午夜欧美大尺度福利影院在线看| 欧美1级日本1级| 91久久线看在观草草青青| 久久久久九九视频| 亚洲欧美日韩精品综合在线观看| 欧美日韩成人| 一区二区三区**美女毛片| 亚洲精品一级| 欧美日韩黄视频| 亚洲男女自偷自拍| 一二三区精品福利视频| 欧美区日韩区| 亚洲精品国产无天堂网2021| 欧美在线视频在线播放完整版免费观看 | 久久久久久9999| 久久精品视频一| 亚洲二区在线视频| 亚洲欧洲综合另类在线| 欧美精品一区二区三区久久久竹菊 | 欧美激情欧美狂野欧美精品| 午夜欧美理论片| 激情综合网址| 91久久久亚洲精品| 伊人成人网在线看| 99re热精品| 亚洲欧洲偷拍精品| 欧美一区午夜视频在线观看| 精品盗摄一区二区三区| 99国产精品久久久| 韩国免费一区| 一区二区三区欧美| 亚洲精品国产精品国自产观看浪潮 | 亚洲美女中出| 亚洲天堂成人在线视频| 99这里只有久久精品视频| 麻豆精品91| 欧美激情在线播放| 一本久道久久久| 欧美视频中文在线看 | 午夜欧美大片免费观看 | 欧美亚洲一区二区在线观看| 久久乐国产精品| 欧美一区二区三区四区在线| 蜜臀91精品一区二区三区| 亚洲无限av看| 欧美激情bt| 欧美激情视频给我| 亚洲成人直播| 午夜精品在线看| 欧美人与禽性xxxxx杂性| 免费观看久久久4p| 国产精品综合久久久| 一区二区三区视频在线看| 在线性视频日韩欧美| 欧美1区2区| 亚洲国产日韩欧美一区二区三区| 韩国av一区二区三区在线观看| 欧美一级成年大片在线观看| 午夜精品久久久久久久99樱桃 | 日韩一区二区高清| 欧美人与禽猛交乱配视频| 夜夜爽夜夜爽精品视频| 性色av一区二区三区红粉影视|