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

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

C++ 構造雙向鏈表的實現代碼

2020-01-26 16:03:21
字體:
來源:轉載
供稿:網友
構造雙向鏈表,不足之處,還望指正! 
復制代碼 代碼如下:

// DoubleLinkedList.cpp : 定義控制臺應用程序的入口點。
//構造雙向鏈表,實現從控制臺輸入,插入,刪除,求大小size等操作
#include "stdafx.h"
#include <iostream>
using namespace std;
//定義雙向鏈表的節點
template<class T>
struct NODE
{
 NODE<T>* pre;
 T data;
 NODE<T>* next;
};
//定義雙向鏈表容器
template<class T>
class DoubleLinkedList
{
public:
 DoubleLinkedList()
 {
  NODE<T>* q = new NODE<T>;
  if (q == NULL)
  {
   cout << "Fail to malloc the head node." << endl;
   return;
  }
  phead = q;
  phead->pre = NULL;
  phead->data = NULL;
  phead->next = NULL;

  T i;
  cout << "Please input several integer number, input ctrl+z to the end: " << endl;
  while (cin >> i)
  {
   NODE<T>* p = new NODE<T>;
   if (p == NULL)
   {
    cout << "Fail to malloc a new node." << endl;
    return;
   }
   p->data = i;
   q->next = p;
   p->pre = q;
   p->next = NULL;
   q = q->next;
  }
 }

 //容器大小方法
 int size()
 {
  NODE<T>* p = phead->next;
  int count(0);
  while (p != NULL)
  {
   count++;
   p = p->next;
  }
  return count;
 }

 //輸出DoubleLinkedLIst中的元素
 void print_elements()
 {
  NODE<T>* p = phead->next;
  while (p != NULL)
  {
   cout << p->data << " ";
   p = p->next;
  }
  cout << endl;
 }
 //插入一個元素到DoubleLinkedList中,任意合法位置插入
 void insert_element(int i, T e)
 {
   if (i <= this->size())
  {
   NODE<T>* m = phead;
   for (int j = 1; j < i; j ++)
   {
    m = m->next;
   }
   NODE<T>* n = m->next;
   NODE<T>* p = new NODE<T>;
   if (p == NULL)
   {
    cout << "Failed to malloc the node." << endl;
   }
   m->next = p;
   p->pre = m;
   p->data = e;
   p->next = n;
   n->pre = p;
  }
  else if (i == (this->size()+1))
  {
   NODE<T>* m = phead;
   for (int j = 1; j < i; j++)
   {
    m = m->next;
   }
   NODE<T>* p = new NODE<T>;
   if (p == NULL)
   {
    cout << "Failed to malloc the node." << endl;
   }
   m->next = p;
   p->pre = m;
   p->data = e;
   p->next = NULL;
  }
  else
  {
   cout << "Please input the position number equals or smaller than " << size()+1 << endl;
  }
 }

 //插入一個元素到DoubleLinkedList中,只在末尾插入
 void insert_element(T e)
 {
  NODE<T>* m = phead;
  for (int j = 1; j <= size(); j++)
  {
   m = m->next;
  }
  NODE<T>* p = new NODE<T>;
  if (p == NULL)
  {
   cout << "Failed to malloc the node." << endl;
  }
  m->next = p;
  p->pre = m;
  p->data = e;
  p->next = NULL;
 }

 //刪除DoubleLinkedList中的一個元素
 void delete_element(int i)
 {
  NODE<T>* p = phead;
  for (int j = 0; j < i; j ++)
  {
   p = p->next;
   if (p == NULL)
   {//所要刪除的元素超過list的范圍
    cout << "The size of the list is " << size() << " ,Please input the right number." << endl;
    return;
   }
  }
  if(p->next != NULL)
  {//刪除除最后一個以外的元素
   NODE<T>* m = p->pre;
   NODE<T>* n = p->next;
   m->next = n;
   n->pre = m;
   delete p;
  }
  else
  {//刪除元素為最后一個
   NODE<T>* m = p->pre;
   m->next = NULL;
   delete p;
  }
 }
private:
 NODE<T>* phead;
};
int _tmain(int argc, _TCHAR* argv[])
{
 //測試代碼
  DoubleLinkedList<int> mylist;
 mylist.print_elements();
 cout << "The size of the double linked list is : " << mylist.size() << endl;
 mylist.insert_element(1, 50);
 mylist.print_elements();
 mylist.insert_element(6, 80);
 mylist.print_elements();
 mylist.insert_element(250);
 mylist.print_elements();
 mylist.delete_element(7);
 mylist.print_elements();
 return 0;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久视频在线| 精品视频在线播放色网色视频| 亚洲一区二区中文字幕| 国产精品草莓在线免费观看| 亚洲精品欧美日韩| 国产欧美va欧美va香蕉在| 亚洲va久久久噜噜噜| 欧洲成人午夜免费大片| 欧美香蕉大胸在线视频观看| 欧美午夜视频在线观看| 国产国语videosex另类| 国产精品a久久久久久| 中文日韩电影网站| 在线视频欧美日韩精品| 亚洲三级免费看| 亚洲最新av在线| 国产精品6699| 性夜试看影院91社区| 91av网站在线播放| 国产午夜精品免费一区二区三区| 78m国产成人精品视频| 热久久美女精品天天吊色| 韩曰欧美视频免费观看| 久久久视频在线| 国产精品影片在线观看| 亚洲欧美日本精品| 国产丝袜高跟一区| 7777精品久久久久久| 亚洲精品久久久久久久久| 成人黄色大片在线免费观看| 亚洲精品一区二区在线| 成人激情春色网| 中文字幕日韩av电影| 中文字幕日韩综合av| 久久99精品久久久久久琪琪| 亚洲人成啪啪网站| 亚洲日韩第一页| 亚洲精品视频中文字幕| 国产精品精品一区二区三区午夜版| 亚洲丝袜在线视频| 欧美视频在线视频| 国产在线视频不卡| 国产精品欧美亚洲777777| 欧美性猛交xxxx乱大交极品| 欧美黄色免费网站| 亚洲高清不卡av| 欧洲成人性视频| 日韩成人xxxx| 高清一区二区三区日本久| 国产精品视频导航| 91sa在线看| 久久激情视频久久| 一夜七次郎国产精品亚洲| 欧美在线性爱视频| 日本在线观看天堂男亚洲| 日韩精品久久久久久福利| 日本欧美黄网站| 国产成人综合精品在线| 在线视频欧美性高潮| 亚洲成色777777女色窝| 久久精品人人做人人爽| 日韩精品免费一线在线观看| 日韩免费观看在线观看| 成人妇女淫片aaaa视频| 国产精品久久av| 一区三区二区视频| 久久精品亚洲热| 亚洲日韩中文字幕在线播放| 国产亚洲欧美日韩精品| 欧美精品免费播放| 九九精品在线观看| 欧美日韩免费一区| 亚洲精品狠狠操| 久久久精品国产亚洲| 欧美激情精品久久久久久黑人| 青青久久av北条麻妃黑人| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲欧洲一区二区三区久久| 欧美午夜美女看片| 欧美老女人www| 久久精品欧美视频| 91sao在线观看国产| 精品毛片网大全| 日韩精品一区二区三区第95| 国产欧美精品在线播放| 91久久国产婷婷一区二区| 国产精品亚洲片夜色在线| 日韩视频在线免费| 51精品国产黑色丝袜高跟鞋| 日韩综合视频在线观看| 日韩亚洲第一页| 欧美国产日韩一区二区三区| 欧美重口另类videos人妖| 欧美在线视频一二三| 亚洲国产欧美一区二区三区久久| 欧美福利在线观看| 久久久久中文字幕2018| 国产精品视频专区| 亚洲香蕉成人av网站在线观看| 在线观看久久av| 欧美重口另类videos人妖| 成人网欧美在线视频| 国产在线精品一区免费香蕉| 精品久久久一区二区| 色综合五月天导航| 日韩av中文字幕在线| 欧美日韩亚洲一区二区三区| 亚洲国产成人一区| 精品久久香蕉国产线看观看亚洲| 亚洲欧美国产高清va在线播| 北条麻妃久久精品| 久久久精品电影| 91av视频在线| 久久久国产视频| 97免费中文视频在线观看| 亚洲曰本av电影| 91日本视频在线| 午夜欧美大片免费观看| 亚洲国产一区二区三区在线观看| 成人网中文字幕| 国产91网红主播在线观看| 亚洲成人久久电影| 日韩精品www| 国产噜噜噜噜久久久久久久久| 国产剧情久久久久久| 日韩中文字幕网址| 国产精品扒开腿爽爽爽视频| 97国产成人精品视频| 国产精品视频资源| 亚洲国产精品女人久久久| 久久久99久久精品女同性| 中文字幕不卡在线视频极品| 欧美久久精品午夜青青大伊人| 91久久精品日日躁夜夜躁国产| 欧美日韩中文字幕在线| 日韩电视剧在线观看免费网站| 精品一区精品二区| 日韩欧美国产激情| 日韩av电影中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩视频在线观看免费| 国产精品都在这里| 国产91精品久久久久久| 日韩在线www| 国产日韩换脸av一区在线观看| 91成人性视频| 日韩影视在线观看| 高清欧美性猛交xxxx黑人猛交| 欧美久久精品一级黑人c片| 国产精品视频专区| 岛国视频午夜一区免费在线观看| 亚洲国产成人久久| 亚洲丁香久久久| 精品偷拍一区二区三区在线看| 亚洲精品综合精品自拍| 日韩av在线影视| 97视频网站入口| 国产香蕉精品视频一区二区三区| 91av在线播放| 精品成人国产在线观看男人呻吟| 精品露脸国产偷人在视频| 疯狂蹂躏欧美一区二区精品| 狠狠躁夜夜躁人人爽天天天天97| 国产精品久久色|