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

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

利用C++簡單實現順序表和單鏈表的示例代碼

2020-01-26 13:59:10
字體:
來源:轉載
供稿:網友

本文主要給大家介紹了關于C++實現順序表和單鏈表的相關內容,分享出來供大家參考學習,話不多說,來一起看看詳細的介紹:

一、順序表示例代碼:

#include <assert.h>#include <iostream>using namespace std;typedef int Datatype;class SeqList{public: SeqList()  :_array(NULL)  ,_size(0)  ,_capacity(0) { } SeqList(const SeqList& s) {  _array = (Datatype*)malloc(s._size*(sizeof(Datatype)));  memcpy(_array, s._array, s._size*(sizeof(Datatype)));  _size = _capacity = s._size; } SeqList& operator=(SeqList& s) {  free(_array);  Swap(s);  return *this; } void Swap(SeqList& s) {  _array = s._array;  _size = s._size;  _capacity = s._capacity; } ~SeqList() {  if (_array)  {   free(_array);   _array = NULL;   _size = _capacity = 0;  } } void Print() {  for (size_t i = 0; i < _size; i++)  {   cout << _array[i] << " ";  }  cout << endl; } void CheckCapcacity() {  if (_size == _capacity)  {   _capacity = 2 * _capacity + 3;   _array = (Datatype*)realloc(_array, _capacity*sizeof(Datatype));   assert(_array);  } } //后插 void PushBack(Datatype x) {  Insert(_size, x); } //前插 void PushFront(Datatype x) {  Insert(0, x); } //刪除最后一個 void PopBack() {  Erase(_size); } //刪除第一個 void PopFront() {  Erase(0); } //[]運算符重載 Datatype& operator[](size_t pos) {  assert(pos < _size);  return _array[pos]; } //pos位置前插入x void Insert(size_t pos, Datatype x) {  assert(pos <= _size);  CheckCapcacity();  int end = (int)_size - 1;  if (pos == 0)  {   while (end >= 0)   {    _array[end + 1] = _array[end];    end--;   }   _array[0] = x;  }  else  {   while (end >= (int)pos)   {    _array[end + 1] = _array[end];    end--;   }   _array[pos] = x;  }  _size++; } //刪除pos位置的元素 void Erase(size_t pos) {  assert(pos < _size);  //popfront的實現  if (_size > 0)  {   if (pos == 0)   {    int end = 0;    while (end < (int)_size - 1)    {     _array[end] = _array[end + 1];     end++;    }    _size--;   }   //popback的實現   else if (pos == _size)   {    _size--;   }   //erase   else   {    int end = pos;    while (end < (int)_size - 1)    {     _array[end] = _array[end + 1];     end++;    }    _size--;   }  }  return;  }private: Datatype* _array; size_t _size; size_t _capacity;};

二、單鏈表(不含頭結點)示例代碼

#include <iostream>#include <assert.h>using namespace std;typedef int DataType;struct SListNode{ SListNode* _next; DataType _data; SListNode(DataType x)  :_data(x)  , _next(NULL) {}};typedef SListNode Node;class SList{public: SList()  :_head(NULL)  , _tail(NULL) {} SList(const SList& s)  :_head(NULL)  ,_tail(NULL) {  Copy(s); } SList& operator=(const SList& s) {  Destroy();  Copy(s);  return *this; } ~SList() {  Destroy(); } void Copy(const SList& s) {  Node* cur = s._head;  while (cur)  {   PushBack(cur->_data);   cur = cur->_next;  } } void Destroy() {  Node* cur = _head;  while (_head != NULL)  {   cur = _head;   _head = cur->_next;   delete cur;  }  _head = _tail = NULL; } void PushBack(DataType x) {  if ((_head == NULL)&&(_tail == NULL))  {   _head = _tail = new Node(x);  }  else  {   _tail->_next = new Node(x);   _tail = _tail->_next;  } } void PopBack() {  if (_head == NULL)  {   return;  }  else if (_head ->_next == NULL)  {   delete _head;   _head = _tail = NULL;  }  else  {   Node* tmp = _head;   while (tmp->_next->_next != NULL)   {    tmp = tmp->_next;   }   _tail = tmp;   tmp->_next = NULL;  }   } void PushFront(DataType x) {  if ((_head == NULL) && (_tail == NULL))  {   _head = _tail = new Node(x);  }  else  {   Node* tmp = new Node(x);   tmp->_next = _head;   _head = tmp;  } } void PopFront() {  if (_head == NULL)  {   return;  }  Node* cur = _head;  _head = _head->_next;  delete cur; } Node* Find(DataType x) {  Node* tmp = _head;  while (tmp)  {   if (tmp->_data == x)    return tmp;   tmp = tmp->_next;  }  return NULL; } // 插入一個節點在pos的前面 void Insert(Node* pos, DataType x) {  assert(pos);  if (pos == 0)  {   PushFront(x);  }  else  {   Node* cur = _head;   while (cur->_next != pos)   {    cur = cur->_next;   }   Node* tmp = new Node(x);   tmp->_next = pos;   cur->_next = tmp;  } } void Erase(Node* pos) {  assert(pos);  if (pos == 0)  {   PopFront();  }  else if (pos->_next == NULL)  {   PopBack();  }  else  {   Node* cur = _head;   while (cur->_next != pos)   {    cur = cur->_next;   }   Node* tmp = cur->_next;   cur->_next = tmp->_next;   delete tmp;  } } void Print() {  Node* tmp = _head;  while (tmp != NULL)  {   cout <<tmp->_data << "->";   tmp= tmp->_next;  }  cout <<"NULL"<<endl; }private: Node* _head; Node* _tail;};

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人黄色免费看| 久久在线精品视频| 91精品综合视频| 欧美精品电影免费在线观看| 国产成人精品久久| 欧美性做爰毛片| 国产精品日韩在线| 国产国语videosex另类| 日韩av网站大全| 欧美成在线观看| 亚洲精品国产免费| 欧美疯狂性受xxxxx另类| 欧美一区二区三区精品电影| 久久精品国产69国产精品亚洲| 欧美精品18videos性欧| 国产精品小说在线| 国产成人中文字幕| 欧美亚洲另类视频| 国产婷婷97碰碰久久人人蜜臀| 欧美在线视频播放| 欧美性xxxx在线播放| 热门国产精品亚洲第一区在线| 欧美老少做受xxxx高潮| 中文字幕一精品亚洲无线一区| 色香阁99久久精品久久久| 欧美日韩国产一区二区三区| 欧美日本精品在线| 久久国产精品久久精品| 亚洲天堂一区二区三区| 日韩乱码在线视频| 国产精品爽黄69| 亚洲午夜久久久久久久| 欧美激情啊啊啊| 成人写真福利网| 精品久久久久久久久久ntr影视| 中文字幕一区二区三区电影| 亚洲网站在线观看| 亚洲午夜女主播在线直播| 中文字幕日韩欧美在线视频| 亚洲国产小视频| 国产精品流白浆视频| 亚洲精品suv精品一区二区| 国产精品96久久久久久又黄又硬| 亚洲国产女人aaa毛片在线| 色综合久久天天综线观看| 狠狠操狠狠色综合网| 欧美精品第一页在线播放| 精品香蕉在线观看视频一| 搡老女人一区二区三区视频tv| 在线免费观看羞羞视频一区二区| 色99之美女主播在线视频| 亚洲第一天堂av| 欧美激情精品在线| 亚洲aⅴ男人的天堂在线观看| 国产精品免费久久久久久| 亚洲日本中文字幕| 成人欧美一区二区三区在线湿哒哒| 91久久久久久国产精品| 性欧美视频videos6一9| 欧美成人剧情片在线观看| 欧美激情免费在线| 91av在线免费观看| 欧美第一淫aaasss性| 国产午夜精品久久久| 欧美成人黄色小视频| 国产日韩精品电影| 久久综合色88| 国产成人+综合亚洲+天堂| 亚洲人成77777在线观看网| 色偷偷亚洲男人天堂| 日韩精品高清在线| 97国产一区二区精品久久呦| 91伊人影院在线播放| 91欧美日韩一区| 久久国产精品久久精品| 久久精品国产2020观看福利| 亚洲天堂男人的天堂| 久久久久久久电影一区| 韩国视频理论视频久久| 中文字幕免费精品一区高清| 亚洲综合av影视| 亚洲在线观看视频网站| 97精品国产97久久久久久春色| 亚洲精品中文字幕有码专区| 欧美巨猛xxxx猛交黑人97人| 亚洲精品电影在线| 久久久亚洲国产天美传媒修理工| 亚洲美女性视频| 一本一本久久a久久精品综合小说| 岛国视频午夜一区免费在线观看| 国产精品久久久久久久久久| 久久久久一本一区二区青青蜜月| 日本精品中文字幕| 91精品国产九九九久久久亚洲| 日韩av电影院| 狠狠综合久久av一区二区小说| 久久影视三级福利片| 欧美成人在线免费| 国产69精品99久久久久久宅男| 欧美电影院免费观看| 91九色视频在线| 国产成人午夜视频网址| 欧美亚洲伦理www| 欧美激情喷水视频| 国产香蕉一区二区三区在线视频| 青青草99啪国产免费| 日本亚洲精品在线观看| 上原亚衣av一区二区三区| 日韩中文字幕视频在线| 成人福利在线视频| 国产精品久久久久久久久影视| 韩国三级日本三级少妇99| 亚洲第一区中文99精品| 亚洲xxx视频| 免费av一区二区| 国产成人短视频| 91色中文字幕| 欧美成人免费播放| 日本高清+成人网在线观看| 精品久久久久久中文字幕一区奶水| 青青久久av北条麻妃海外网| 2021国产精品视频| 亚洲一区二区三区乱码aⅴ| 欧美精品久久久久久久久| 日韩有码在线观看| 69久久夜色精品国产69乱青草| 亚洲欧美国产高清va在线播| 97碰碰碰免费色视频| 自拍亚洲一区欧美另类| 热re99久久精品国产66热| 久久久久久久久久国产| 久久99久久亚洲国产| 日韩免费精品视频| 久久久国产影院| 久久视频国产精品免费视频在线| 欧洲中文字幕国产精品| 色爱精品视频一区| 精品久久久久久久久久久久久久| 欧美激情亚洲综合一区| 国产在线观看精品一区二区三区| 亚洲欧洲在线视频| 91地址最新发布| 国产午夜精品免费一区二区三区| 欧美成人精品在线播放| 欧美日韩在线视频首页| 欧美成人精品在线| 中文字幕亚洲欧美日韩2019| 亚洲欧美国产高清va在线播| 欧美成人免费小视频| 精品美女久久久久久免费| 亚洲精品成人久久电影| 久久久精品视频成人| 一道本无吗dⅴd在线播放一区| 成人黄色片网站| 精品久久久久久亚洲精品| 久久香蕉国产线看观看网| 亚洲美女动态图120秒| 亚洲国产欧美一区二区三区久久| 亚洲电影免费观看高清完整版在线观看| 91在线精品视频| 在线日韩av观看| 久久99国产综合精品女同| 亚洲二区在线播放视频| 疯狂欧美牲乱大交777|