多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > 循環(huán)鏈表

循環(huán)鏈表

來源:程序員人生   發(fā)布時(shí)間:2014-11-03 08:10:25 閱讀次數(shù):2395次


循環(huán)鏈表和單鏈表沒有本質(zhì)上的差別。唯1不同的鏈表的最后不再是空的了,而是指向了first頭指針。只有這樣我們才會(huì)實(shí)現(xiàn)鏈表的循環(huán)功能,那末問題來了,我們在下面的函數(shù)功能中我們只是需要把里面用的頭指針的重用名換到first->next中,而且其中的計(jì)數(shù)器count也從1開始計(jì)數(shù),這樣就避免了在while的循環(huán)中第1步實(shí)行不下去??赵挷欢嗾f。詳細(xì)看wo的代碼吧。

#ifndef CirLinkList_H
#define CirLinkList_H
#include<iostream>
using namespace std;
template<typename T>
struct Node{//結(jié)點(diǎn)
 T data;
 Node<T> * next;
};
template<typename T>
class CirLinkList {//無頭結(jié)點(diǎn)的循環(huán)單鏈表
 template<typename T>
 friend ostream & operator<<(ostream &,CirLinkList<T> &);
public:
 CirLinkList();    //創(chuàng)建空循環(huán)單鏈表(即:first指向空指針)。
 CirLinkList(T a[],int n); //建立含n個(gè)元素的循環(huán)單鏈表。
 ~CirLinkList();   //析構(gòu)函數(shù),清除所有結(jié)點(diǎn)。
 int Length();   //求表長度。
 T Get(int i);   //取表中第i個(gè)元素。10分
 void Insert(int i,T & x);//在第i個(gè)結(jié)點(diǎn)以后,插入新元素。
 T Delete(int i);  //刪除第i個(gè)元素。
 bool isEmpty();   //判斷表是不是為空。
 void DelTheSame();  //刪除表中相同元素,僅保存1個(gè)。
private:
 Node<T> * first;
};
template<typename T>
ostream & operator<<(ostream & os,CirLinkList<T> & l){
 Node<T> * p=l.first->next;
 if(p!=l.first){
  do{
   os<<p->data<<",";
   p=p->next;
  }while(p!=l.first);
 }
 else
  os<<endl;
 return os;
}
template<typename T>
CirLinkList<T>::CirLinkList()
{
   Node<T> *first;
   first=new Node<T>;
   first->next=first;//初始化循環(huán)單鏈表
}
template<typename T>
CirLinkList<T>::CirLinkList(T a[],int n)
{
  Node<T> *r,*s;
  first=new Node<T>;
  r=first;
  for(int i=0;i<n;i++)
  {
   s=new Node<T>;
   s->data=a[i];
   r->next=s;
   r=s;
   }
  r->next=first;//這里的first1直沒變
}
template<typename T>
CirLinkList<T>::~CirLinkList()
{
  Node<T> *q=NULL;
  while(first!=NULL)
  {
   q=first;
   first=first->next;
   delete q;      //可能有問題?
  }
}
template<typename T>
int CirLinkList<T>::Length()
{
 Node<T> *p=first->next;
 int count=0;
 while(p!=first)
 {
  p=p->next;
  count++;
 }
 return count;
}
template<typename T>
T CirLinkList<T>::Get(int i)
{
 Node<T> *p=first->next;
 int count=1;
 while(p!=first&&count<i)
 {
  p=p->next;
  count++;
 }
 if(p==first)throw"位置";
 else return p->data;
}
template<typename T>
void CirLinkList<T>::Insert(int i,T & x)
{
 Node<T> *p=first->next;
  int count=1;
  while(p!=first&&count<i)
  {
   p=p->next;
   count++;
  }
  if(p==first)throw"位置";
  else
  {
    Node<T> *s;
 s=new Node<T>;
 s->data=x;
 s->next=p->next;
 p->next=s;
  }
}
template<typename T>
T CirLinkList<T>::Delete(int i)
{
 Node<T> *p=first->next;
  T x;int count=1;
  while(p!=first&&count<i⑴)
  {
    p=p->next;
 count++;
  }
  if(p==first||p->next==first)throw"位置";
  else
  {
    Node<T> *q;
 q=p->next;
 x=q->data;
 p->next=q->next;
 delete q;
 return x;
  }
}
template<typename T>
bool CirLinkList<T>::isEmpty()
{
  Node<T> *q;
  if(first=first->next)
   return 0;
}
template<typename T>
void CirLinkList<T>::DelTheSame()
{
 Node<T> *q=first->next;
 while(q!=first)
 {
  Node<T> *s=q->next;
  Node<T> *r;
  r=s;
  if(q==r)
  {
    delete s;
    r=r->next;
  }
 }
}
#endif
****************************************************
#include<iostream>
#include"CirLinkList.h"
using namespace std;
int main(){
 int ary[]={2,4,6,8,12,32,43,6,9,2,7},x=11;
 CirLinkList<int> myLink(ary,11);
 cout<<"鏈表內(nèi)容:"<<myLink<<endl;
 cout<<"鏈表長度:"<<myLink.Length()<<endl;
 cout<<"第11號元素:"<<myLink.Get(11)<<endl;
 myLink.Insert(3,x);
 cout<<"在3號元素后插入11后,鏈表內(nèi)容:"<<myLink<<endl;
 cout<<"被刪除的5號元素內(nèi)容:"<<myLink.Delete(5)<<endl;
 cout<<"鏈表當(dāng)前內(nèi)容:"<<myLink<<endl;
 myLink.DelTheSame();
 cout<<"刪除相同元素后,鏈表內(nèi)容:"<<myLink<<endl;
 if(myLink.isEmpty())
  cout<<"空:";
 return 0;
}

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 性欧美videos hd高清 | 亚洲欧美一区二区三区综合 | 手机看片日韩福利 | 综合久青草视频 | 午夜私人影院在线观看 视频 | 国产免费叼嘿在线观看 | 男人边吃奶边摸下面好爽视频 | 春色视频网站 | 欧美性videos高清精品 | 午夜dj影视大全视频 | 久久国内精品 | 精品亚洲在线 | 精品亚洲福利一区二区 | 羞羞动漫免费看网站 | 亚洲第99页 | 亚洲一级高清在线中文字幕 | 国产免费高清在线精品一区 | 国产高清在线精品一区 | 欧美性videos高清精品 | 日本不卡视频在线 | 国产成人亚洲精品2020 | 中文字幕第八页 | jizz在线观看国产精品 | 波多野结衣资源在线观看 | 国产一区二区三区日韩欧美 | 大陆三级午夜理伦三级三 | 国产成人在线视频 | 综合自拍亚洲综合图区美腿丝袜 | 另类 校园 春色 都市 亚洲 | 国产亚洲精品久久久久久 | 黄视频在线观看www 黄网站大全 | 色播网址 | 亚洲成人在线播放 | www亚洲国产 | 高清免费国产在线观看 | 欧洲亚洲一区 | 无码免费一区二区三区免费播放 | 欧美色欧美 | 亚洲黄色小说视频 | 特级淫片aaaaa片毛片 | 欧美最爽乱淫视频播放黑人 |