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

📄 queue.cpp

📁 学习数据结构的一个实验程序。 C++的。
💻 CPP
字号:
	#include "iostream.h"
	#include "string.h"
	#include "conio.h"
	#define SIZE 20
	#define Err 0
	#define Ok 1
	#define cEnd "bye"
	#define Pend ((X *)pchar)
	#define Phead (this)
	typedef unsigned char * dType;
	typedef int status;
	
	
	class X
	{   unsigned char * pchar;
	    static unsigned int len;
		X * next;
	   public:
		   X(){ pchar=new unsigned char[SIZE];}
		   ~X(){ delete []pchar;}
		   
	
		   static status isempty();
		   status append(unsigned char * ptr);
		   status del();
	       void clear();
		   friend void init(X **pp){ (*pp)=new X; (*pp)->next=*pp; (*pp)->pchar=(unsigned char *)*pp;}
		   friend ostream & operator <<(ostream & scout,X *obj); 
	       friend istream & operator >>(istream & scin,X *obj);
		   
	};	   
	unsigned int X::len=0;
	
	
	
	status X::isempty()
	{ if(len) {cout << "\n队列非空!___" << len << "__" << endl;      return 0;}
		cout << "\n 队列为空!" << endl;
		 return 1;
	}
	status X::append(unsigned char * ptr)
	{   
		X * tmp=new X;
	      
		if(!(tmp)) return Err;
		strcpy((char *)tmp->pchar,(char *)ptr);
		Pend->next=tmp;
		pchar=(unsigned char *)tmp; 
		
		 
		 
		 cout << "     结点_" << (++len) << "_入队" << endl;
		 
	 return Ok;
	}
	status X::del()
	{ if(len>0) 
	{   X * tmp=Phead->next;
	    Phead->next=tmp->next;
	
	  cout << "\n结点_" << (len--) << "_:" << tmp->pchar << " 出队" << endl;
		  delete tmp;
	  return Ok;
	}
	else { cout << " 队列已清空!" << endl;
	return Err; } 
	}
	void X::clear()
	{  while(del());
	}
	 ostream & operator <<(ostream & scout,X *pobj)
	 {   scout << "\n\n  输出队列元素:\n"  ;
	     X *p=pobj;
	    for(int i=X::len;i>0;i--)
	    {   
			p=p->next;
		    scout << "元素_" << i << "_:" << p->pchar << endl;
			 
	    }
		
	  
	  return scout;
	 } 
	 
	 istream & operator >>(istream & scin,X *obj)
	 {   unsigned char * tmp=new unsigned char[SIZE];
		 cout << "\n\n  输入队列元素:\n    "; 
		 scin >> tmp;
		 
		 while (strcmp((char *)tmp,cEnd))
		 {   
	#ifdef debug
	  cout << tmp << endl;
	#endif
			obj->append(tmp); scin >> tmp;}
		    cout << "   输入结束!" << endl;
		    
		 return scin;
	}
	
	 void wait()
	 { cout << "\n\n\n\n        任意键结束!....";
	   getch();
 }

⌨️ 快捷键说明

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