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

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

?? 9_6.cpp

?? C++多個例題的源代碼及分析.有興趣的可以
?? CPP
字號:
//9_6.cpp
#include <iostream>
#include <cstdlib>
#include "9_6.h"
using namespace std;
template <class T>
Node<T> *LinkedList<T>::GetNode(const T& item, Node<T>* ptrNext)	//生成新結點
{
   Node<T> *p;
   p = new Node<T>(item,ptrNext);
   if (p == NULL)
   {
      cout << "Memory allocation failure!\n";
      exit(1);
   }
   return p;
}

template <class T>
void LinkedList<T>::FreeNode(Node<T> *p) //釋放結點
{
   delete p;
}

template <class T>
void LinkedList<T>::CopyList(const LinkedList<T>& L) //鏈表復制函數
{
   Node<T> *p = L.front;	//P用來遍歷L 
   int pos;
   while (p != NULL)	//將L中的每一個元素插入到當前鏈表最后
   {
      InsertRear(p->data);
      p = p->NextNode();
   }
   if (position == -1)	//如果鏈表空,返回
      return;
   //在新鏈表中重新設置prevPtr和currPtr
   prevPtr = NULL;
   currPtr = front;
   for (pos = 0; pos != position; pos++)
   {
      prevPtr = currPtr;
      currPtr = currPtr->NextNode();
   }
}

template <class T>  //構造一個新鏈表,將有關指針設置為空,size為0,position為-1
LinkedList<T>::LinkedList(void): front(NULL), rear(NULL),
      prevPtr(NULL),currPtr(NULL), size(0), position(-1)
{}

template <class T>
LinkedList<T>::LinkedList(const LinkedList<T>& L)  //拷貝構造函數
{
   front = rear = NULL;
   prevPtr = currPtr = NULL;
   size = 0;
   position = -1;
   CopyList(L);
}

template <class T>
void LinkedList<T>::ClearList(void)	//清空鏈表
{
   Node<T> *currPosition, *nextPosition;
   currPosition = front;
   while(currPosition != NULL)
   {
      nextPosition = currPosition->NextNode(); //取得下一結點的地址
      FreeNode(currPosition);	//刪除當前結點
      currPosition = nextPosition;	//當前指針移動到下一結點
   }
   front = rear = NULL;
   prevPtr = currPtr = NULL;
   size = 0;
   position = -1;
}

template <class T>
LinkedList<T>::~LinkedList(void)	//析構函數
{   ClearList();  }

template <class T>
LinkedList<T>& LinkedList<T>::operator=(const LinkedList<T>& L)//重載"="
{
   if (this == &L)	// 不能將鏈表賦值給它自身
      return *this;
   ClearList();
   CopyList(L);
   return *this;
}

template <class T>
int LinkedList<T>::ListSize(void) const	//返回鏈表大小的函數
{   return size;  }

template <class T>
int LinkedList<T>::ListEmpty(void) const	//判斷鏈表為空否
{   return size == 0;  }

template <class T>
void LinkedList<T>::Next(void)	//將prevPtr和currPtr向前移動一個結點
{
   if (currPtr != NULL)
   {
      prevPtr = currPtr;
      currPtr = currPtr->NextNode();
      position++;
   }
}

template <class T>
int LinkedList<T>::EndOfList(void) const	// 判斷是否已達表尾
{   return currPtr == NULL;  }


template <class T>
int LinkedList<T>::CurrentPosition(void) const  // 返回當前結點的位置
{   return position;  }


template <class T>
void LinkedList<T>::Reset(int pos)	//將鏈表當前位置設置為pos 
{
   int startPos;
   if (front == NULL)	// 如果鏈表為空,返回
      return;
   if (pos < 0 || pos > size-1)	// 如果指定位置不合法,中止程序
   {
      cerr << "Reset: Invalid list position: " << pos << endl;
      return;
   }
   // 設置與遍歷鏈表有關的成員
   if(pos == 0)	// 如果pos為0,將指針重新設置到表頭
   {
      prevPtr = NULL;
      currPtr = front;
      position = 0;
   }
   else	// 重新設置 currPtr, prevPtr, 和 position 
   {
       currPtr = front->NextNode();
       prevPtr = front;
       startPos = 1;
	   for(position=startPos; position != pos; position++)
	   {
	       prevPtr = currPtr;
	       currPtr = currPtr->NextNode();
      }
   }
}

template <class T>
T& LinkedList<T>::Data(void)	//返回一個當前結點數值的引用
{
   if (size == 0 || currPtr == NULL)	// 如果鏈表為空或已經完成遍歷則出錯
   {
      cerr << "Data: invalid reference!" << endl;
      exit(1);
   }
   return currPtr->data;
}

template <class T>
void LinkedList<T>::InsertFront(const T& item)   // 將item插入在表頭
{
   if (front != NULL)	// 如果鏈表不空則調用Reset 
      Reset();
   InsertAt(item);	// 在表頭插入
}


template <class T>
void LinkedList<T>::InsertRear(const T& item)   // 在表尾插入結點
{
   Node<T> *newNode;
   prevPtr = rear;
   newNode = GetNode(item);	// 創建新結點
   if (rear == NULL)	// 如果表空則插入在表頭
      front = rear = newNode;
   else
   {
      rear->InsertAfter(newNode);
      rear = newNode;
   }
   currPtr = rear;
   position = size;
   size++;
}


template <class T>
void LinkedList<T>::InsertAt(const T& item)	// 將item插入在鏈表當前位置
{
   Node<T> *newNode;
   if (prevPtr == NULL)	// 插入在鏈表頭,包括將結點插入到空表中
   {
      newNode = GetNode(item,front);
      front = newNode;
   }
   else	// 插入到鏈表之中. 將結點置于prevPtr之后
   {
      newNode = GetNode(item);
      prevPtr->InsertAfter(newNode);
   }
   if (prevPtr == rear)	//正在向空表中插入,或者是插入到非空表的表尾
   {
      rear = newNode;	//更新rear 
      position = size;	//更新position 
   }
   currPtr = newNode;	//更新currPtr
   size++;	//使size增值
}


template <class T>
void LinkedList<T>::InsertAfter(const T& item)  // 將item 插入到鏈表當前位置之后
{
   Node<T> *p;
   p = GetNode(item);
   if (front == NULL)	 // 向空表中插入
   {
      front = currPtr = rear = p;
      position = 0;
   }
   else	// 插入到最后一個結點之后
   {
      if (currPtr == NULL)
        currPtr = prevPtr;
      currPtr->InsertAfter(p);
      if (currPtr == rear)
      {
        rear = p;
        position = size;
      }
      else
        position++;
      prevPtr = currPtr;
      currPtr = p;
   }
   size++;              // 使鏈表長度增值
}


template <class T>
T LinkedList<T>::DeleteFront(void)	// 刪除表頭結點
{
   T item;
   Reset();
   if (front == NULL)
   {
      cerr << "Invalid deletion!" << endl;
      exit(1);
   }
   item = currPtr->data;
   DeleteAt();
   return item;
}

     
template <class T>
void LinkedList<T>::DeleteAt(void)	// 刪除鏈表當前位置的結點
{
   Node<T> *p;
   if (currPtr == NULL)	// 如果表空或達到表尾則出錯
   {
      cerr << "Invalid deletion!" << endl;
      exit(1);
   }
   if (prevPtr == NULL)	// 刪除將發生在表頭或鏈表之中
   {
      p = front;	// 保存頭結點地址
      front = front->NextNode();	//將其從鏈表中分離
   }
   else	//分離prevPtr之后的一個內部結點,保存其地址
      p = prevPtr->DeleteAfter();

   if (p == rear)	// 如果表尾結點被刪除
   {
      rear = prevPtr;	//新的表尾是prevPtr 
      position--;	//position自減
   }
   currPtr = p->NextNode();	// 使currPtr越過被刪除的結點
   FreeNode(p);	// 釋放結點,并
   size--;	//使鏈表長度自減
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产永久精品大片wwwapp| 懂色av噜噜一区二区三区av| 国产乱码精品一区二区三| 91丨porny丨中文| 欧美变态口味重另类| 一区二区三区四区国产精品| 国产自产视频一区二区三区 | 中文字幕亚洲不卡| 视频精品一区二区| 色综合天天视频在线观看| 精品久久人人做人人爽| 亚洲电影欧美电影有声小说| 91麻豆免费视频| 久久精品人人做| 久久精品99久久久| 欧美视频日韩视频| 成人免费在线播放视频| 久久99精品久久只有精品| 欧美日本在线看| 一区二区三区高清不卡| 成人av网站免费观看| 精品国产区一区| 蜜桃av一区二区三区| 欧美妇女性影城| 亚洲永久精品国产| 91小宝寻花一区二区三区| 国产三级精品视频| 国产一区在线观看视频| 欧美一区二区三区免费在线看| 一区二区三区免费观看| www.欧美精品一二区| 国产日韩欧美在线一区| 国内偷窥港台综合视频在线播放| 日韩视频一区在线观看| 婷婷六月综合亚洲| 欧美日产在线观看| 午夜a成v人精品| 欧美久久一区二区| 青青草国产精品97视觉盛宴| 欧美一区二区三区影视| 免费在线观看一区| 日韩一区二区电影网| 麻豆久久久久久久| 精品成人一区二区三区| 国产精品一区二区免费不卡| 久久精品在线观看| 成人午夜免费电影| 国产精品五月天| 色94色欧美sute亚洲线路一ni| 一区二区三区在线影院| 欧美亚洲动漫另类| 日韩中文字幕91| 久久天堂av综合合色蜜桃网 | 午夜视频一区在线观看| 欧美日韩精品一区二区在线播放| 视频一区二区中文字幕| 日韩午夜三级在线| 丰满放荡岳乱妇91ww| 亚洲免费资源在线播放| 欧美日本乱大交xxxxx| 经典三级视频一区| 欧美国产精品一区| 欧美综合在线视频| 青青草伊人久久| 国产欧美日韩三区| 欧美亚洲愉拍一区二区| 精品无码三级在线观看视频| 亚洲人精品一区| 欧美一三区三区四区免费在线看| 国产乱人伦偷精品视频免下载| 亚洲欧美日韩在线不卡| 6080午夜不卡| 成人免费av在线| 日本一区中文字幕| 国产精品私房写真福利视频| 欧美日韩在线播放一区| 国模娜娜一区二区三区| 亚洲精品成人a在线观看| 日韩久久免费av| 色av成人天堂桃色av| 久久se精品一区精品二区| 中文字幕一区二区在线播放| 日韩视频永久免费| 色综合久久久久综合体桃花网| 美腿丝袜亚洲综合| 亚洲一区二区三区小说| 久久精品亚洲麻豆av一区二区 | 成人av电影免费观看| 香蕉乱码成人久久天堂爱免费| 国产日韩av一区二区| 3d动漫精品啪啪一区二区竹菊| 福利一区在线观看| 蜜臀av性久久久久蜜臀av麻豆| 亚洲美女屁股眼交3| 久久久精品免费网站| 欧美日韩国产在线观看| eeuss影院一区二区三区| 精品一区二区三区蜜桃| 亚洲成av人片在www色猫咪| 国产精品丝袜一区| 欧美精品一区视频| 欧美狂野另类xxxxoooo| 91久久精品日日躁夜夜躁欧美| 国产传媒欧美日韩成人| 美美哒免费高清在线观看视频一区二区 | 一区二区三区四区视频精品免费 | 色婷婷狠狠综合| 国产丶欧美丶日本不卡视频| 国内精品久久久久影院色| 亚洲va国产va欧美va观看| 亚洲视频一二三| 亚洲欧美日韩精品久久久久| 亚洲国产精品成人综合色在线婷婷 | 欧美午夜精品理论片a级按摩| 成人av在线一区二区| 国产成人精品www牛牛影视| 韩国一区二区三区| 狠狠狠色丁香婷婷综合激情| 久久99热这里只有精品| 加勒比av一区二区| 看国产成人h片视频| 九九国产精品视频| 精品一区二区三区在线视频| 久88久久88久久久| 激情亚洲综合在线| 国产一区二区免费视频| 国产成人午夜片在线观看高清观看| 国产一区二区三区免费播放 | 老色鬼精品视频在线观看播放| 午夜精品久久久| 美女网站视频久久| 狠狠色丁香婷婷综合久久片| 精品一区二区在线视频| 国产精品888| 99国产精品久久久久久久久久久 | 欧美一区二区免费观在线| 欧美一区二区久久| 久久久久久毛片| 亚洲日本va在线观看| 亚洲综合视频在线观看| 亚洲成av人影院| 国产美女久久久久| 91在线精品一区二区| 欧美日韩不卡一区二区| 欧美xxxxx牲另类人与| 欧美国产欧美综合| 亚洲综合男人的天堂| 日本美女视频一区二区| 精品影院一区二区久久久| 丁香婷婷综合网| 欧美丝袜丝交足nylons图片| 日韩久久久久久| 亚洲天堂精品视频| 天天综合日日夜夜精品| 国产白丝精品91爽爽久久| 色94色欧美sute亚洲13| 精品国产亚洲一区二区三区在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲影院久久精品| 九九视频精品免费| 日本黄色一区二区| 精品99一区二区| 亚洲一区欧美一区| 精品亚洲porn| 在线成人av网站| 综合久久一区二区三区| 午夜欧美在线一二页| 不卡视频在线观看| 欧美高清hd18日本| 亚洲欧美国产毛片在线| 久久av老司机精品网站导航| 欧美性色黄大片手机版| 久久久不卡网国产精品一区| 日韩二区在线观看| 波多野结衣中文字幕一区二区三区| 欧美精品成人一区二区三区四区| 国产精品理论片在线观看| 日本不卡的三区四区五区| 94色蜜桃网一区二区三区| 精品99久久久久久| 丝袜美腿亚洲综合| 色偷偷88欧美精品久久久| 国产目拍亚洲精品99久久精品| 男人的天堂久久精品| 欧美视频你懂的| 一区二区三区在线视频观看58| 播五月开心婷婷综合| 久久精品亚洲国产奇米99| 日本一道高清亚洲日美韩| 欧美在线短视频| 亚洲欧美aⅴ...| 99久久综合99久久综合网站| 亚洲精品在线免费播放| 蜜臀va亚洲va欧美va天堂| 欧美三级蜜桃2在线观看| 亚洲乱码国产乱码精品精小说 | 亚洲欧美日韩系列| 99视频精品全部免费在线| 国产日本欧美一区二区| 国产精品一卡二卡在线观看|