⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tigaoti.cpp

📁 这是一个数据结构源码程序
💻 CPP
字号:
#include<iostream.h>
class cirList;
class cirNode
{
friend class cirList;
    int data;
	cirNode *link;
public:
	cirNode(int d) { data=d;link=0; }
};
class cirList
{
	cirNode *first,*current,*last;
public:
	cirList() { first=current=last=0; }
	void Insert(int value);
	void Remove(int i);
	void j(int n,int s,int m);
	void print();
};
void cirList::Insert(int value)
{
	cirNode *p=new cirNode(value);
	if(first==0)
	{
		first=last=current=p;
		last->link=first;
	}
	else
	{
		p->link=first;
		last->link=p;
		current=last=p;
	}
}
void cirList::Remove(int i)
{
	cirNode *p=first,*q;int k=0;
	while(p!=0&&k<i-1)
	{
		p=p->link;k++;
	}
	if(i==0)
	{
		q=first;current=first=first->link;
		last->link=first;
	}
	else
	{
		q=p->link;
		current=p->link=q->link;
		if(q==last)
		{
			last=p;
			current=last->link=first;
		}
	}
	delete q;
}
void cirList::j(int n,int s,int m)
{
	current=last;int v=n;
	for(int i=0;i<s;i++)
		current=current->link;
	while(n>0)
	{
		int h=0;
		for(i=0;i<m-1;i++)
			current=current->link;
		cout<<current->data<<" ";
		cirNode *p=first;
		while(p!=current)
		{
			p=p->link; h++;
		}
		Remove(h);
		n--;
	}
}
void cirList::print()
{
	current=first;
	while(current->link !=first)
	{
		cout<<current->data<<" ";
		current=current->link;
	}
	cout<<last->data<<endl;
}
void main()
{
	int n,s,m;char k;
loop: cout<<"请输入人数: ";
	  cin>>n;cout<<endl;
	  cout<<"请输入从第几人开始 :";
	  cin>>s;cout<<endl;
	  cout<<"请输入限制数 :";
	  cin>>m; cout<<endl;
	  if(n<1||n<s||n<m||s<1||m<1)
	  {
	   	cout<<"ERROR!"<<endl;
		goto loop;
	  }
		
			else
			{
	        	cirList a;
	        	for(int i=0;i<n;i++)
	       		a.Insert(i+1);
	         	a.print();
	         	a.j(n,s,m);
			}
     cout<<"你想再测验一次吗?如果是请输入y,要不需要请输入n结束.";
         cin>>k;
		if(k=='y')
			goto loop;
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -