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

📄 glist.cpp

📁 这是一个关于广义表问题的程序
💻 CPP
字号:
#include <fstream.h>
#include <iostream.h>
template <class T>
class Queue{
	public:
		Queue(int max=10);
		~Queue(){delete[]queue;}
	Queue<T>&enqueue(const T&x);
Queue<T>&dequeue(T&x);
		int bignum(int i,int j);
	
	private:
			int front;
		int rear;
		int maxsize;
	int *queue;
};
template <class T>
Queue<T>::Queue(int max)
{ maxsize=max+1;
queue=new int [maxsize];
front=rear=0;}
template <class T>
Queue<T>&Queue<T>::enqueue(const  T &x)
{rear=(rear+1)%maxsize;
 queue[rear]=x;
 
 return *this;}
template <class T>
Queue<T>&Queue<T>::dequeue(T &x)
{
	front=(front+1)%maxsize;
	x=queue[front];
return *this;	}
template <class T>
int Queue<T>::bignum(int i,int j)
{ int m;
	if(i>j)
		return m=i;
	else return m=j;
}

 


void main()
{
	int n,t,a=0,x;
	
	ifstream input("input.txt");
	input>>n;


int *m=new int[n];
	Queue<int> *s;
		s=new Queue<int>[n];
	int *b=new int[n];
ofstream output ("output.txt");

	for(int i=0;i<n;i++)
	{	input>>m[i];

for(int j=0;j<m[i];j++)
{
	input>>t;
s[i].enqueue(t);//



b[i]=s[i].bignum(b[i],t);



}
 	};
for(i=0;i<n;i++)
{
if(b[i]>a) 
 a=b[i];
else if(b[i]<a)
continue;

	}
output<<a<<endl;

int *q=new int [n];
for(i=0;i<n;i++)
{q[i]=0;
	for(int j=0;j<m[i];j++)
{ s[i].dequeue(x);
if(x>0)
 q[i]=q[i]+x;
else if(x<0)
{s[i].enqueue(q[-x-1]);

m[i]++;
  
}


	}

}

for(i=0;i<n;i++)
{if(q[i]>q[i-1])
a=q[i];
else a=q[i-1];
}

output<<a<<"  ";



}	


⌨️ 快捷键说明

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