亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++語言實現線性表之鏈表實例

2020-01-26 15:07:38
字體:
來源:轉載
供稿:網友

本文實例講述了C++語言實現線性表之鏈表實現方法。分享給大家供大家參考。具體分析如下:

插入、刪除結點的代碼有點多,但這樣提高了代碼的可讀性,且不增加時間復雜度,不會影響程序性能

#include <iostream>using namespace std;template<typename T>class CList;template<class T>class Node{ friend CList<T>;private: T m_data; Node *m_pNext;};template<class T>class CList{public: CList(); ~CList(); bool IsEmpty(); void Append(const T &data); void Delete(const int &pos); void Print(); int GetLength(); T Find(const int &pos); void Insert(const int &pos,const T &data);private: Node<T> *m_pHead; Node<T> *m_pEnd; int m_len; void Create(); void Destroy();};//為頭結點分配空間template<class T>void CList<T>::Create(){ m_pHead = new Node<T>; m_pEnd = new Node<T>; m_pHead->m_pNext = NULL; m_pEnd->m_pNext = m_pHead->m_pNext; m_len = 0;}template<class T>CList<T>::CList(){ Create();}//刪除所有結點template<class T>void CList<T>::Destroy(){ Node<T> *pF = m_pHead->m_pNext; Node<T> *pT; while(pF) {  pT = pF;  pF = pF->m_pNext;  delete pT; }}template<class T>CList<T>::~CList(){ Destroy();}//判斷是否為空template<class T>bool CList<T>::IsEmpty(){ if(!m_pHead->m_pNext) {  return true; } else {  return false; }}//從表的最后加入一個元素template<class T>void CList<T>::Append(const T &data){ Node<T> *pT = new Node<T>; pT->m_data = data; pT->m_pNext = NULL; if(!m_pHead->m_pNext) {  m_pHead->m_pNext = pT; } else {  (m_pEnd->m_pNext)->m_pNext = pT; } m_pEnd->m_pNext = pT; ++m_len;}//刪除一個元素template<class T>void CList<T>::Delete(const int &pos){ if(pos < 0 || pos < m_len) {  cout<<"位置不合法"<<endl;  return; } Node<T> *pPre = NULL;//存放前一個結點 Node<T> *pBehind = NULL;//存放后一個結點 Node<T> *pT = m_pHead->m_pNext;//目標結點 int ix = -1; while(pT) {  ++ix;  if(ix == pos - 1 - 1)  {   pPre = pT;  }  else if(ix == pos - 1)  {   pBehind = pT->m_pNext;   break;  }  pT = pT->m_pNext; } if(!pPre)//如果指針為空則說明pos是指第一個元素 {  delete pT;  m_pHead->m_pNext = pBehind;  --m_len;  return; } if(!pBehind)//如果指針為空則說明pos是指最后一個元素 {  m_pEnd = pPre;  delete pT; } pPre->m_pNext = pBehind; --m_len;}//輸出所有數據template<class T>void CList<T>::Print(){ Node<T> *pT = m_pHead->m_pNext; while(pT) {  cout<<pT->m_data<<",";  pT = pT->m_pNext; } cout<<endl;}template<class T>int CList<T>::GetLength(){ return m_len;}//查找數據template<class T>T CList<T>::Find(const int &pos){ if(pos <= 0) {  cout<<"輸入不合法"<<endl;  return NULL; } if(pos > m_len) {  cout<<"超出表長"<<endl;  return NULL; } int i = 0; Node<T> *pT = m_pHead->m_pNext; while(pT) {  ++i;  if(i == pos)  {   return pT->m_data;  }  pT = pT->m_pNext; } return NULL;}template<class T>void CList<T>::Insert(const int &pos,const T &data){ if(pos <= 0 || pos >m_len) {  cout<<"輸入不合法"<<endl;  return; } int i = 0; Node<T> *pT = m_pHead->m_pNext; Node<T> *pPre = NULL; Node<T> *pBehind = NULL; while(pT) {  ++i;  if(i == pos - 1)  {   pPre = pT;  }  if(i == pos)  {   pBehind = pT->m_pNext;   break;  }  pT = pT->m_pNext; } Node<T> *pNew = new Node<T>; pNew->m_data = data; if(!pPre)//如果指針為空則說明pos是指第一個元素 {  pNew->m_pNext = m_pHead->m_pNext;  m_pHead->m_pNext = pNew;  ++m_len;  return; } if(!pBehind)//如果指針為空則說明pos是指最后一個元素 {  m_pEnd->m_pNext = pNew; } pPre->m_pNext = pNew; pNew->m_pNext = pT; ++m_len;}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕成人精品久久不卡| 欧美精品精品精品精品免费| 欧美性猛交xxxx黑人| 日韩在线观看视频免费| 在线播放日韩专区| 亚洲第一中文字幕在线观看| 成人精品视频99在线观看免费| 亚洲黄页视频免费观看| 欧美成人精品激情在线观看| 亚洲国产小视频在线观看| 久久久久久这里只有精品| 国产成人高清激情视频在线观看| 精品呦交小u女在线| 国产成+人+综合+亚洲欧洲| 欧美日韩中文字幕在线| 91精品久久久久久久| 日韩欧美亚洲综合| 久久人人爽国产| 国产精品美乳一区二区免费| 日韩av毛片网| 久久精品这里热有精品| 日韩有码在线电影| 欧美日韩国产一中文字不卡| 久久精品99久久久香蕉| 中文字幕欧美视频在线| 久久人人爽人人爽爽久久| 国产一区二区三区毛片| 国产日韩一区在线| 欧美精品亚州精品| 欧美疯狂xxxx大交乱88av| 欧美大成色www永久网站婷| 日韩av免费在线观看| 久久久亚洲精品视频| 精品国产鲁一鲁一区二区张丽| 欧美性xxxx极品hd满灌| 亚洲缚视频在线观看| 欧美国产日韩一区| 日韩网站免费观看高清| 日本高清视频精品| 欧美日韩中文字幕在线| www亚洲精品| 中文字幕精品国产| 中文字幕欧美精品日韩中文字幕| 国产亚洲精品美女久久久| 欧美一级电影在线| 日韩在线视频线视频免费网站| 久久国产视频网站| 日韩国产高清污视频在线观看| 亚洲成**性毛茸茸| 欧美性videos高清精品| 91精品视频播放| 日韩电影免费在线观看| 91成人性视频| 国产一区二区在线免费| 欧美风情在线观看| 日韩av中文字幕在线播放| 成人444kkkk在线观看| 麻豆国产精品va在线观看不卡| 欧美夫妻性视频| 国产精品678| 亚洲激情久久久| 日韩欧美精品在线观看| 在线视频欧美性高潮| 久久精品视频在线播放| 亚洲欧洲在线播放| 中文字幕亚洲欧美日韩高清| 国产成人精品国内自产拍免费看| 日韩欧美亚洲成人| 欧美日韩国产一区二区| 亚洲四色影视在线观看| 国产精品香蕉在线观看| 97热精品视频官网| 日韩网站免费观看| 精品久久久久久国产91| 日韩在线国产精品| 日韩精品福利在线| 久久精品人人做人人爽| 欧美日韩电影在线观看| 国产精品美女在线| 日韩国产一区三区| 欧美日韩美女在线观看| 久久久在线观看| 亚洲欧美一区二区三区久久| 国产精国产精品| 亚洲欧美日韩精品久久奇米色影视| 最近2019免费中文字幕视频三| 国产精品嫩草影院一区二区| 日韩美女写真福利在线观看| 国产精品1234| 国产精品电影网站| 精品二区三区线观看| 久久91精品国产91久久久| 久久精品99久久香蕉国产色戒| 色一情一乱一区二区| 久久久久中文字幕| 日韩色av导航| 青青草原成人在线视频| 国产福利成人在线| 成人有码在线播放| 这里只有精品丝袜| 91日本在线观看| 日韩网站免费观看高清| 国产日韩视频在线观看| 综合激情国产一区| 777777777亚洲妇女| 亚洲第一福利网| 国产精品亚洲一区二区三区| 欧美亚洲国产视频| 久久久久久国产免费| 国产精品视频999| 黄色精品在线看| 岛国av一区二区在线在线观看| 91亚洲永久免费精品| 亚洲丁香婷深爱综合| 51ⅴ精品国产91久久久久久| 国产一区二中文字幕在线看| 日韩a**站在线观看| 日韩av不卡电影| 久久久综合免费视频| 2019中文字幕在线| 国模叶桐国产精品一区| 7777kkkk成人观看| 日韩欧美在线观看| 日韩欧美在线一区| 欧美精品第一页在线播放| 国产精品亚洲精品| 狠狠躁夜夜躁人人爽超碰91| 成人激情春色网| 欧美日韩加勒比精品一区| 美女视频黄免费的亚洲男人天堂| 欧美视频在线观看 亚洲欧| 国产精品成av人在线视午夜片| 另类少妇人与禽zozz0性伦| 久久精品视频va| 精品视频久久久久久久| 色www亚洲国产张柏芝| 91在线网站视频| 日韩中文字幕亚洲| 精品国产一区久久久| 日韩欧美国产视频| 国产精品久久久久久中文字| 欧美尤物巨大精品爽| 国产一区二区三区直播精品电影| 中文字幕成人精品久久不卡| 久久久久久亚洲精品中文字幕| 91国产在线精品| 欧美亚洲第一页| 国产成人精品视频在线| 久久97精品久久久久久久不卡| 国产精品久久久久久中文字| 91国产视频在线| 欧美福利视频在线观看| 国内偷自视频区视频综合| 国产精品欧美亚洲777777| 国产亚洲精品久久久久久777| 亚洲乱码av中文一区二区| 国产成人av网址| 亚洲аv电影天堂网| 热久久美女精品天天吊色| 久久久电影免费观看完整版| 欧美电影在线免费观看网站| 国内伊人久久久久久网站视频| 91精品久久久久久久久久久久久久| 欧美激情2020午夜免费观看|