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

📄 glist.cpp

📁 这是一个关于广义表问题的程序
💻 CPP
字号:
#include<fstream.h>
template<class T>
class Node{
	public:
		T data;
		Node<T> * next;
};

template <class T>
class Queue{
	public:
		Queue(){front=rear=0;}
		~Queue();
		bool Empty() const
		{return ((front)?false:true);}
		Queue<T>& EnQueue(const T& x);
		Queue<T>& DeQueue(T& x);
		Node<T> * rear;
		Node<T> * front;
		
};

template<class T>
Queue<T>::~Queue()
{
	Node<T> * next;
	while(front){
		next=front->next;
		delete front;
		front=next;
	}
}

template<class T>
Queue<T>& Queue<T>::EnQueue(const T& x)
{
	Node<T> *p=new Node <T>;
	p->data=x;
	p->next=0;
	if (front) rear->next=p;
	else front=p;
	rear=p;
	return * this;
}

template<class T>
Queue<T>& Queue<T>::DeQueue(T& x)
{
	x=front->data;
	Node<T> * p=front;
	front=front->next;
	delete p;
	return * this;
}

main()
{
	ifstream in("input.txt");
    ofstream out("output.txt");
	int m,n,a,b,x,l=0,max=0;
	Queue<int> * L=new Queue<int>[100];
	in>>n;
	for(int i=0;i<n;i++)
	{
		in>>m;
		for(int j=0;j<m;j++)
		{
			in>>a;
			L[i].EnQueue(a);

			max=max>a?max:a;
		}
	}
	out<<max<<endl;
	int c[100];
	for(i=0;i<n;i++)
	{
		c[i]=0;
		do{
			L[i].DeQueue(x);
			if(x>=0) c[i]+=x;
			else c[i]+=c[-x-1];
		}while(L[i].Empty()==0);
	}
	out<<c[n-1]<<endl;
	return 0;
}

⌨️ 快捷键说明

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