亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? listwr01.cpp

?? 《21天學通C++》Teach Yourself C++ in 21 Days (Fourth Edition) 源代碼
?? CPP
字號:
// **************************************************
//
// Title:       Week 2 in Review
//
// File:       Week2
//
// Description:   Provide a linked list demonstration program
//
// Classes:      PART - holds part numbers and potentially other
//                     information about parts
//
//               PartNode - acts as a node in a PartsList
//
//               PartsList - provides the mechanisms for 
//                           a linked list of parts
//
//
// **************************************************

 #include <iostream>
 using namespace std;



 // **************** Part ************

 // Abstract base class of parts
 class Part
 {
   public:
     Part():itsPartNumber(1) {}
     Part(int PartNumber):itsPartNumber(PartNumber){}
     virtual ~Part(){};
     int GetPartNumber() const { return itsPartNumber; }
     virtual void Display() const =0;  // must be overridden
   private:
     int itsPartNumber;
 };

 // implementation of pure virtual function so that
 // derived classes can chain up
 void Part::Display() const
 {
     cout << "\nPart Number: " << itsPartNumber << endl;
 }

 // **************** Car Part ************

 class CarPart : public Part
 {
   public:
     CarPart():itsModelYear(94){}
     CarPart(int year, int partNumber);
     virtual void Display() const
    {
       Part::Display(); cout << "Model Year: ";
       cout << itsModelYear << endl;
    }
   private:
     int itsModelYear;
 };

 CarPart::CarPart(int year, int partNumber):
    itsModelYear(year),
    Part(partNumber)
 {}


 // **************** AirPlane Part ************

 class AirPlanePart : public Part
 {
   public:
     AirPlanePart():itsEngineNumber(1){};
     AirPlanePart(int EngineNumber, int PartNumber);
     virtual void Display() const
    {
       Part::Display(); cout << "Engine No.: ";
       cout << itsEngineNumber << endl;
    }
   private:
     int itsEngineNumber;
 };

 AirPlanePart::AirPlanePart(int EngineNumber, int PartNumber):
    itsEngineNumber(EngineNumber),
    Part(PartNumber)
 {}

 // **************** Part Node ************
 class PartNode
 {
   public:
     PartNode (Part*);
     ~PartNode();
     void SetNext(PartNode * node) { itsNext = node; }
     PartNode * GetNext() const;
     Part * GetPart() const;
   private:
     Part *itsPart;
     PartNode * itsNext;
  };

  // PartNode Implementations...

  PartNode::PartNode(Part* pPart):
  itsPart(pPart),
  itsNext(0)
  {}

  PartNode::~PartNode()
  {
     delete itsPart;
     itsPart = 0;
     delete itsNext;
     itsNext = 0;
  }

  // Returns NULL if no next PartNode
  PartNode * PartNode::GetNext() const
  {
     return itsNext;
  }

  Part * PartNode::GetPart() const
  {
     if (itsPart)
        return itsPart;
     else
        return NULL; //error
  }

  // **************** Part List ************
  class PartsList
  {
    public:
      PartsList();
      ~PartsList();
      // needs copy constructor and operator equals!
      Part*      Find(int & position, int PartNumber)  const;
      int        GetCount() const { return itsCount; }
      Part*      GetFirst() const;
      void       Insert(Part *);
      void       Iterate() const;
      Part*      operator[](int) const;
    private:
      PartNode * pHead;
      int itsCount;
  };

  // Implementations for Lists...

  PartsList::PartsList():
     pHead(0),
     itsCount(0)
     {}

  PartsList::~PartsList()
  {
     delete pHead;
  }

  Part*   PartsList::GetFirst() const
  {
     if (pHead)
        return pHead->GetPart();
     else
        return NULL;  // error catch here
  }

  Part *  PartsList::operator[](int offSet) const
  {
     PartNode* pNode = pHead;

     if (!pHead)
        return NULL; // error catch here

     if (offSet > itsCount)
        return NULL; // error

     for (int i=0;i<offSet; i++)
        pNode = pNode->GetNext();

    return   pNode->GetPart();
  }

  Part*   PartsList::Find(int & position, int PartNumber)  const
  {
     PartNode * pNode = 0;
     for (pNode = pHead, position = 0;
           pNode!=NULL;
           pNode = pNode->GetNext(), position++)
     {
        if (pNode->GetPart()->GetPartNumber() == PartNumber)
           break;
     }
     if (pNode == NULL)
        return NULL;
     else
        return pNode->GetPart();
  }

  void PartsList::Iterate() const
  {
     if (!pHead)
        return;
     PartNode* pNode = pHead;
     do
        pNode->GetPart()->Display();
     while (pNode = pNode->GetNext());
  }

  void PartsList::Insert(Part* pPart)
  {
     PartNode * pNode = new PartNode(pPart);
     PartNode * pCurrent = pHead;
     PartNode * pNext = 0;

     int New =  pPart->GetPartNumber();
     int Next = 0;
     itsCount++;

     if (!pHead)
     {
        pHead = pNode;
        return;
     }

     // if this one is smaller than head
     // this one is the new head
     if (pHead->GetPart()->GetPartNumber() > New)
     {
        pNode->SetNext(pHead);
        pHead = pNode;
        return;
     }

     for (;;)
     {
        // if there is no next, append this new one
        if (!pCurrent->GetNext())
        {
           pCurrent->SetNext(pNode);
           return;
        }

        // if this goes after this one and before the next
        // then insert it here, otherwise get the next
        pNext = pCurrent->GetNext();
        Next = pNext->GetPart()->GetPartNumber();
        if (Next > New)
        {
           pCurrent->SetNext(pNode);
           pNode->SetNext(pNext);
           return;
        }
        pCurrent = pNext;
     }
  }

  int main()
  {
     // PartsList&pl = PartsList::GetGlobalPartsList();
     PartsList pl;

     Part * pPart = 0;
     int PartNumber;
     int value;
     int choice = 99;

     while (choice != 0)
     {
        cout << "(0)Quit (1)Car (2)Plane: ";
        cin >> choice;

        if (choice != 0 )
        {  
            cout << "New PartNumber?: ";
            cin >>  PartNumber;

            if (choice == 1)
            {
               cout << "Model Year?: ";
               cin >> value;
               pPart = new CarPart(value,PartNumber);
            }
            else
            {
               cout << "Engine Number?: ";
               cin >> value;
               pPart = new AirPlanePart(value,PartNumber);
            }

            pl.Insert(pPart);
        }
     }
     pl.Iterate();
     return 0;
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利一区二区三区| 26uuu色噜噜精品一区| 欧洲人成人精品| 欧美一级国产精品| 最新热久久免费视频| 亚洲一二三四区不卡| 久久99热狠狠色一区二区| 紧缚捆绑精品一区二区| 成人a区在线观看| 国产日韩精品视频一区| 亚洲成人精品一区二区| 国产成人日日夜夜| 欧美日韩亚洲综合| 中文字幕国产一区二区| 五月激情六月综合| 成人午夜免费电影| 欧美精品一区二区三区很污很色的 | 国产剧情在线观看一区二区| 色偷偷久久一区二区三区| 久久影音资源网| 欧美aaaaa成人免费观看视频| 成人黄页毛片网站| 久久久精品日韩欧美| 久久国产日韩欧美精品| 精品国产麻豆免费人成网站| 国产精品免费久久| 国产另类ts人妖一区二区| 欧美日韩免费观看一区二区三区| 日本一区二区三区dvd视频在线| 天堂久久一区二区三区| 在线观看欧美日本| 亚洲人妖av一区二区| 成人国产精品免费观看视频| 国产视频视频一区| 国产精品1区2区| 久久精品夜夜夜夜久久| 国产成人av一区二区三区在线| 欧美成人性战久久| 国产精一区二区三区| www国产精品av| 国产a视频精品免费观看| 亚洲国产精华液网站w | 欧美大黄免费观看| 国产乱对白刺激视频不卡 | 久久狠狠亚洲综合| 中文字幕一区二区日韩精品绯色| 国产精品一卡二卡在线观看| 国产精品天干天干在观线| 99久久精品国产毛片| 日日摸夜夜添夜夜添国产精品| 日韩一级片在线播放| 九一久久久久久| 亚洲精品精品亚洲| 欧美丰满嫩嫩电影| 国产成人免费视频网站 | 色综合久久久久| 视频一区视频二区中文| 中文子幕无线码一区tr| 在线电影一区二区三区| 国产91对白在线观看九色| 亚洲永久免费视频| 国产精品少妇自拍| 日韩免费一区二区| 欧美亚洲国产bt| av中文一区二区三区| 国产乱码精品一区二区三区忘忧草 | 亚洲小少妇裸体bbw| 日本一区二区三区四区在线视频| 91精选在线观看| 欧美视频日韩视频| 99久久国产综合精品女不卡| 成人午夜短视频| 国产一区二区免费视频| 国产在线精品一区二区三区不卡| 香蕉加勒比综合久久| 亚洲综合在线第一页| 日韩理论片中文av| 亚洲美女视频在线| 中文字幕日韩精品一区| 欧美—级在线免费片| 国产日产精品1区| 国产肉丝袜一区二区| 亚洲欧洲日韩综合一区二区| 日韩一区日韩二区| 一区二区三区日韩精品视频| 亚洲丝袜另类动漫二区| 亚洲色图欧美偷拍| 亚洲午夜精品网| 日本成人在线电影网| 狠狠v欧美v日韩v亚洲ⅴ| 国产99一区视频免费| 97久久超碰国产精品电影| 在线免费观看日本欧美| 欧美日韩和欧美的一区二区| 久久综合狠狠综合久久综合88| 国产精品情趣视频| 婷婷六月综合亚洲| 国产盗摄一区二区| 欧美日韩精品是欧美日韩精品| 精品国产3级a| 亚洲一区在线看| 成人精品免费网站| 欧美一级在线观看| 一区二区三区影院| 国产宾馆实践打屁股91| 欧美一级在线观看| 亚洲一区二区三区在线播放| 国产福利一区二区| 欧美大白屁股肥臀xxxxxx| 亚洲日本在线看| 成人美女视频在线观看18| 日韩欧美黄色影院| 亚洲国产成人精品视频| av成人免费在线观看| 欧美国产欧美综合| 激情六月婷婷久久| 日韩三级视频中文字幕| 亚洲成人激情社区| 欧美日韩黄色影视| 亚洲大型综合色站| 欧美日韩精品欧美日韩精品一| 亚洲午夜国产一区99re久久| 色老汉一区二区三区| 亚洲精品视频自拍| 91久久精品一区二区二区| 亚洲免费成人av| 欧美日韩在线播放一区| 日本亚洲最大的色成网站www| 在线欧美小视频| 免费成人av资源网| 久久精品亚洲麻豆av一区二区| 国产成人综合自拍| 国产精品传媒视频| 717成人午夜免费福利电影| 日韩成人免费在线| 久久久久久久久久久电影| 高清不卡一区二区在线| 悠悠色在线精品| 日韩女优毛片在线| 9色porny自拍视频一区二区| 亚洲第一会所有码转帖| 国产亚洲精品资源在线26u| 色哟哟一区二区在线观看| 日韩电影在线一区二区三区| 国产亚洲综合在线| 欧美美女bb生活片| jizz一区二区| 韩国精品一区二区| 日日骚欧美日韩| 亚洲精品一二三区| 国产精品福利av| 久久综合视频网| 欧美一区二区三区日韩| 91在线porny国产在线看| 激情文学综合丁香| 久久97超碰色| 日韩精品一级二级| 亚洲男人天堂一区| 国产精品白丝在线| 久久久久久久久97黄色工厂| 日韩欧美黄色影院| 日韩一区二区在线看| 欧美少妇一区二区| 日本福利一区二区| 91在线码无精品| 91美女在线视频| 色偷偷88欧美精品久久久| 成人午夜看片网址| 本田岬高潮一区二区三区| 丰满放荡岳乱妇91ww| 暴力调教一区二区三区| 不卡视频在线看| 91久久人澡人人添人人爽欧美| 色婷婷综合久久| 91精品欧美一区二区三区综合在| 7777精品伊人久久久大香线蕉最新版 | 成人动漫视频在线| 色综合久久综合网97色综合| 欧美性受xxxx| 欧美一级爆毛片| 国产亚洲va综合人人澡精品| 久久精品亚洲精品国产欧美kt∨ | 久久久99久久| 亚洲第一成人在线| 国产精品一线二线三线| 91猫先生在线| 日韩欧美国产综合| 中文字幕日韩精品一区 | 91精品综合久久久久久| 中文字幕第一区| 日本不卡视频在线| 成人av在线播放网址| 欧美日韩亚洲综合| 中文字幕中文字幕一区| 久久国产日韩欧美精品| 欧美日韩一区高清| 亚洲精品国产精品乱码不99| 蜜桃av一区二区在线观看| 色婷婷综合久久| 国产精品久久三|