求助啊输出卡无限循环了
查看原帖
求助啊输出卡无限循环了
546282
bianxingyu1111楼主2022/10/25 21:40
#include<iostream>
using namespace std;
template<class T>
struct Node{
	double val;
	int next;
};
template<class T>
struct List{
	Node<int> node[100];
	int p=0;
	int head=0;
	int tail=head;
	void push_back(T d){
		int np=++p;
		node[np].val=d;
		node[tail].next=np;
		tail=np;
	}
	int getAddr(int i){
		int ip=head;
		for(int k=1;k<=i;k++){
			ip=node[ip].next;
		}
		return ip;
	}
	T getVal(int i){
		return node[i].val;
	}
	int getNext(int i){
		return node[i].next;
	}
	void erase(int i){
		if(tail==node[i].next){
			tail=i;
			node[tail].next=1;
		}
		node[i].next=node[node[i].next].next;
	}
	T begin(){
		return node[head].next;
	}
	int next(int i){
		return node[i].next;
	}
};
int main(){
	int n,m;
	cin>>n>>m;
	List<int> list;
	for(int i=1;i<=n;i++){
		list.push_back(i);
	}
	int k=0;
	while(1){
		k=list.next(k+m);
		cout<<list.getVal(list.getAddr(k))<<' ';
		if(list.getNext(list.head)==list.getNext(list.tail)){
			cout<<list.getVal(1);
			break;
		}
	}
	return 0;
}
2022/10/25 21:40
加载中...