小白没有积分 希望能得到大家的帮助 麻烦了qaq
头文件:
template
struct Node //定义循环链表的结点
{
T data;
Node*next;
};
template
class CLinkList //定义循环链表模板类
{
public: CLinkList()
{rear=new Node;rear=rear->next;}
CLinkList(int n);
T Delete(int m);
private:Node*rear;
};
template
CLinkList::CLinkList(int n) //建立1~n的循环链表
{
rear=new Node;
rear->next=rear;
rear->data=1;
for(int i=1;i {
Node*p=new Node;
p->data=i+1;
p->next=rear->next;
rear->next=p;
rear=p;
}
}
template
T CLinkList::Delete(int m)
{ Node*p=rear,*q;
if(m<=0) throw "输入错误!";
while(rear->next->next!=rear)
{
for(int i=1;i {
p=p->next;
q=p->next;
p->next=q->next;
cout<data<<" ";
delete q;
}
}
cout< cout return rear->next->data;
}
.cpp
#include
#include "1.h"
using namespace std;
void main()
{
int n,m;
cout<<"请输入人数"< cin>>n;
cout<<"请输入要删除第几个人"< cin>>m;
CLinkList ABC(n);
cout<<ABC.Delete(m);
}
template<class T>
T CLinkList<T>::Delete(int m)
{ Node<T>*p=rear,*q;
if(m<=0) throw "输入错误!";
while(rear->next->next!=rear)
{
for(int i=1;i<m;i++)
{
p=p->next;
}
q=p->next;
p->next=q->next;
cout<<q->data<<" ";
delete q;
}