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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? list.h

?? Cpp how to program source code
?? H
字號(hào):
// Fig. 21.4: List.h
// Template List class definition.
#ifndef LIST_H
#define LIST_H

#include <iostream>
using std::cout;

#include <new>
#include "Listnode.h" // ListNode class definition

template< typename NODETYPE >
class List 
{
public:
   List(); // constructor
   ~List(); // destructor
   void insertAtFront( const NODETYPE & );
   void insertAtBack( const NODETYPE & );
   bool removeFromFront( NODETYPE & );
   bool removeFromBack( NODETYPE & );
   bool isEmpty() const;
   void print() const;
private:
   ListNode< NODETYPE > *firstPtr; // pointer to first node
   ListNode< NODETYPE > *lastPtr; // pointer to last node

   // utility function to allocate new node
   ListNode< NODETYPE > *getNewNode( const NODETYPE & );
}; // end class List

// default constructor
template< typename NODETYPE >
List< NODETYPE >::List() 
   : firstPtr( 0 ), lastPtr( 0 ) 
{ 
   // empty body
} // end List constructor

// destructor
template< typename NODETYPE >
List< NODETYPE >::~List()
{
   if ( !isEmpty() ) // List is not empty
   {    
      cout << "Destroying nodes ...\n";

      ListNode< NODETYPE > *currentPtr = firstPtr;
      ListNode< NODETYPE > *tempPtr;

      while ( currentPtr != 0 ) // delete remaining nodes
      {  
         tempPtr = currentPtr;
         cout << tempPtr->data << '\n';
         currentPtr = currentPtr->nextPtr;
         delete tempPtr;
      } // end while
   } // end if

   cout << "All nodes destroyed\n\n";
} // end List destructor

// insert node at front of list
template< typename NODETYPE >
void List< NODETYPE >::insertAtFront( const NODETYPE &value )
{
   ListNode< NODETYPE > *newPtr = getNewNode( value ); // new node

   if ( isEmpty() ) // List is empty
      firstPtr = lastPtr = newPtr; // new list has only one node
   else // List is not empty
   {
      newPtr->nextPtr = firstPtr; // point new node to previous 1st node
      firstPtr = newPtr; // aim firstPtr at new node
   } // end else
} // end function insertAtFront

// insert node at back of list
template< typename NODETYPE >
void List< NODETYPE >::insertAtBack( const NODETYPE &value )
{
   ListNode< NODETYPE > *newPtr = getNewNode( value ); // new node

   if ( isEmpty() ) // List is empty
      firstPtr = lastPtr = newPtr; // new list has only one node
   else // List is not empty
   {
      lastPtr->nextPtr = newPtr; // update previous last node
      lastPtr = newPtr; // new last node
   } // end else
} // end function insertAtBack

// delete node from front of list
template< typename NODETYPE >
bool List< NODETYPE >::removeFromFront( NODETYPE &value )
{
   if ( isEmpty() ) // List is empty
      return false; // delete unsuccessful
   else 
   {
      ListNode< NODETYPE > *tempPtr = firstPtr; // hold tempPtr to delete

      if ( firstPtr == lastPtr )
         firstPtr = lastPtr = 0; // no nodes remain after removal
      else
         firstPtr = firstPtr->nextPtr; // point to previous 2nd node

      value = tempPtr->data; // return data being removed
      delete tempPtr; // reclaim previous front node
      return true; // delete successful
   } // end else
} // end function removeFromFront

// delete node from back of list
template< typename NODETYPE >
bool List< NODETYPE >::removeFromBack( NODETYPE &value )
{
   if ( isEmpty() ) // List is empty
      return false; // delete unsuccessful
   else 
   {
      ListNode< NODETYPE > *tempPtr = lastPtr; // hold tempPtr to delete

      if ( firstPtr == lastPtr ) // List has one element
         firstPtr = lastPtr = 0; // no nodes remain after removal
      else 
      {
         ListNode< NODETYPE > *currentPtr = firstPtr;

         // locate second-to-last element            
         while ( currentPtr->nextPtr != lastPtr )    
            currentPtr = currentPtr->nextPtr; // move to next node

         lastPtr = currentPtr; // remove last node
         currentPtr->nextPtr = 0; // this is now the last node
      } // end else

      value = tempPtr->data; // return value from old last node
      delete tempPtr; // reclaim former last node
      return true; // delete successful
   } // end else
} // end function removeFromBack

// is List empty?
template< typename NODETYPE > 
bool List< NODETYPE >::isEmpty() const 
{ 
   return firstPtr == 0; 
} // end function isEmpty

// return pointer to newly allocated node
template< typename NODETYPE >
ListNode< NODETYPE > *List< NODETYPE >::getNewNode( 
   const NODETYPE &value )
{
   return new ListNode< NODETYPE >( value );
} // end function getNewNode

// display contents of List
template< typename NODETYPE >
void List< NODETYPE >::print() const
{
   if ( isEmpty() ) // List is empty
   {
      cout << "The list is empty\n\n";
      return;
   } // end if

   ListNode< NODETYPE > *currentPtr = firstPtr;

   cout << "The list is: ";

   while ( currentPtr != 0 ) // get element data
   {
      cout << currentPtr->data << ' ';
      currentPtr = currentPtr->nextPtr;
   } // end while

   cout << "\n\n";
} // end function print

#endif

/**************************************************************************
 * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and               *
 * Pearson Education, Inc. All Rights Reserved.                           *
 *                                                                        *
 * DISCLAIMER: The authors and publisher of this book have used their     *
 * best efforts in preparing the book. These efforts include the          *
 * development, research, and testing of the theories and programs        *
 * to determine their effectiveness. The authors and publisher make       *
 * no warranty of any kind, expressed or implied, with regard to these    *
 * programs or to the documentation contained in these books. The authors *
 * and publisher shall not be liable in any event for incidental or       *
 * consequential damages in connection with, or arising out of, the       *
 * furnishing, performance, or use of these programs.                     *
 **************************************************************************/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国av一区二区| caoporen国产精品视频| 国产精品传媒视频| 51精品视频一区二区三区| 成人18视频日本| 精品午夜久久福利影院| 亚洲国产综合在线| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲 欧美综合在线网络| 久久午夜电影网| 欧美日韩亚洲综合一区| 从欧美一区二区三区| 久久电影网站中文字幕| 天天综合天天综合色| 一区二区中文字幕在线| 久久综合丝袜日本网| 日韩一区二区免费在线观看| 91黄视频在线观看| 国产成人丝袜美腿| 久久se精品一区精品二区| 一区二区三区四区在线| 国产精品久久久久久久久免费桃花| 日韩免费一区二区三区在线播放| 欧美午夜精品久久久久久孕妇 | 日本成人在线一区| 亚洲成国产人片在线观看| 亚洲女同女同女同女同女同69| 欧美经典一区二区| 日本一区二区久久| 久久九九影视网| 久久午夜老司机| 精品国产髙清在线看国产毛片| 3d动漫精品啪啪1区2区免费| 欧美日韩极品在线观看一区| 欧美色图片你懂的| 在线免费观看不卡av| 成人av资源下载| 成人h精品动漫一区二区三区| 盗摄精品av一区二区三区| 国产精品一区二区91| 国产成人在线免费观看| 国产91丝袜在线播放0| 韩国成人精品a∨在线观看| 国内精品写真在线观看| 国产福利电影一区二区三区| 国产精品69久久久久水密桃 | 欧美军同video69gay| 色94色欧美sute亚洲线路一久| 色婷婷av一区二区三区之一色屋| 91理论电影在线观看| 欧美中文字幕一二三区视频| 欧美群妇大交群中文字幕| 3atv一区二区三区| 日韩精品一区二区三区视频播放| 欧美变态tickling挠脚心| 精品国产乱码久久久久久图片| 2020日本不卡一区二区视频| 国产日韩精品久久久| 亚洲欧洲日韩女同| 一区二区三区影院| 日韩不卡在线观看日韩不卡视频| 免费美女久久99| 福利一区二区在线观看| 91欧美一区二区| 欧美日韩综合在线免费观看| 日韩欧美区一区二| 国产精品免费av| 亚洲午夜电影在线| 国内精品写真在线观看| 91香蕉视频mp4| 7777精品伊人久久久大香线蕉最新版| 精品久久人人做人人爱| 中文字幕一区二区三区不卡在线 | 一级女性全黄久久生活片免费| 亚洲国产欧美在线| 狠狠色狠狠色综合日日91app| 成人av电影免费在线播放| 欧美日精品一区视频| 久久久久久久综合狠狠综合| 亚洲精品国产品国语在线app| 日韩不卡一区二区三区| 成人不卡免费av| 欧美一区二区三区视频免费| 亚洲国产成人在线| 日韩成人精品在线观看| 成人不卡免费av| 日韩午夜电影av| 亚洲日本韩国一区| 久久不见久久见免费视频1| 色综合一区二区| 久久嫩草精品久久久久| 午夜精品久久久久久久久| 成人精品免费看| 91精品国产色综合久久久蜜香臀| 国产情人综合久久777777| 亚洲成av人片一区二区三区| 成人看片黄a免费看在线| 日韩一区二区三区电影| 亚洲综合在线电影| 成人精品视频.| 日韩精品一区二区三区视频在线观看 | 国产精品色在线观看| 蜜桃免费网站一区二区三区| 欧美伊人精品成人久久综合97| 国产欧美在线观看一区| 日韩av电影免费观看高清完整版在线观看| jlzzjlzz欧美大全| 国产日韩综合av| 久久99九九99精品| 欧美另类高清zo欧美| 亚洲精品视频在线| 丰满放荡岳乱妇91ww| 精品国产一区二区精华| 日韩电影在线免费| 欧美日韩国产a| 一区二区三区中文字幕电影| 99精品欧美一区二区蜜桃免费| 久久久青草青青国产亚洲免观| 全部av―极品视觉盛宴亚洲| 精品视频在线视频| 亚洲高清三级视频| 欧美午夜精品理论片a级按摩| 成人免费在线观看入口| 成人app下载| 中文成人av在线| 国产91在线观看丝袜| 国产女同互慰高潮91漫画| 国产精品一二三区| 26uuu国产一区二区三区| 久久精品72免费观看| 日韩免费性生活视频播放| 免费高清视频精品| 日韩免费看网站| 麻豆精品新av中文字幕| 日韩视频在线观看一区二区| 轻轻草成人在线| 在线不卡一区二区| 日韩不卡手机在线v区| 日韩一区和二区| 久久成人久久爱| 久久久精品国产99久久精品芒果 | 亚洲图片欧美激情| 91麻豆成人久久精品二区三区| 日韩美女视频一区二区| 色婷婷综合久久久久中文一区二区 | www久久精品| 国产福利91精品一区二区三区| 国产欧美日韩不卡| 91伊人久久大香线蕉| 一区二区成人在线| 欧美一区二区三区在线| 国产在线视频精品一区| 国产精品女主播在线观看| 91麻豆免费看| 亚洲va欧美va人人爽| 欧美成人女星排行榜| 国产毛片精品视频| 亚洲视频免费看| 欧美精品日韩一本| 加勒比av一区二区| 综合久久久久久久| 欧美熟乱第一页| 精品在线你懂的| 亚洲欧美综合在线精品| 欧美日韩国产经典色站一区二区三区| 蜜臀久久99精品久久久久宅男| 久久嫩草精品久久久久| 色综合久久久久久久久| 秋霞av亚洲一区二区三| 亚洲国产精华液网站w| 欧美无人高清视频在线观看| 蜜臀久久99精品久久久久宅男| 日本一区二区成人| 欧美精品乱码久久久久久按摩| 国产一区二区三区四区五区美女| 国产精品九色蝌蚪自拍| 欧美日韩精品是欧美日韩精品| 国产酒店精品激情| 亚洲主播在线观看| 久久精品一区四区| 欧美色倩网站大全免费| 国产成人福利片| 婷婷激情综合网| 国产精品伦理在线| 日韩欧美国产一二三区| 色婷婷激情综合| 国产毛片精品国产一区二区三区| 亚洲最大色网站| 中文成人av在线| 欧美mv日韩mv国产网站| 91美女福利视频| 国产综合久久久久影院| 亚洲国产精品麻豆| 国产欧美一区二区在线| 在线不卡a资源高清| av亚洲精华国产精华| 美国欧美日韩国产在线播放| 亚洲精品国产精品乱码不99| 久久久久久久国产精品影院| 欧美系列日韩一区|