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

📄 jcsque.cpp

📁 C++编写的词组匹配的小程序
💻 CPP
字号:
// JCSQue.cpp Begin
/*Jon Martin: functions for the storage allocation version of class JCSQue.*/

#include "JCSQue.h"
JCSQue::JCSQue()
{    
	MAX_ITEMS = 40001;
	front = MAX_ITEMS -1;
	rear = MAX_ITEMS -1;
	items = new QUENODE[MAX_ITEMS];		
}
JCSQue::JCSQue(int n)
{    
	MAX_ITEMS = n+1;
	front = MAX_ITEMS -1;
	rear = MAX_ITEMS -1;
	items = new QUENODE[MAX_ITEMS];	
}
JCSQue::JCSQue(const JCSQue& anotherQue)
{
	int i;
	if (this == &anotherQue) return;
    if (anotherQue.items == NULL) items = NULL;
	else 
	{
		MAX_ITEMS = anotherQue.MAX_ITEMS;
        front = anotherQue.front;
        rear = anotherQue.rear;
		items = new QUENODE[MAX_ITEMS];
		if (rear >= front)
        {
			for (i = front+1;i <= rear;i++)
  			  items[i] = anotherQue.items[i];
		} 
		else 
		{
			for (i = 0;i <= rear;i++)
  			  items[i] = anotherQue.items[i];
			for ( i = front+1;i <= MAX_ITEMS;i++)
  			  items[i] = anotherQue.items[i];
		}
	}
}

JCSQue::~JCSQue()
{    
	delete [] items;
}
void JCSQue::MakeEmpty()
{
    front = MAX_ITEMS - 1;
	rear = MAX_ITEMS - 1;
}
bool JCSQue::IsEmpty() const
{
    return (rear == front);
}
void JCSQue::operator =(const JCSQue& originalQue)
{
	int i;
	if (this == &originalQue) return;
    if (originalQue.items == NULL) items = NULL;
	else 
	{
		MAX_ITEMS = originalQue.MAX_ITEMS;
        front = originalQue.front;
        rear = originalQue.rear;        
		items = new QUENODE[MAX_ITEMS];
		if (rear >= front)
        {
			for (i = front+1;i <= rear;i++)
  			  items[i] = originalQue.items[i];
		} else 
		{
			for (i = 0;i <= rear;i++)
  			  items[i] = originalQue.items[i];
			for (i = front+1;i <= MAX_ITEMS;i++)
  			  items[i] = originalQue.items[i];
		}
	}		
}
bool JCSQue::IsFull() const
{
    return ((rear + 1) % MAX_ITEMS == front);
}

void JCSQue::enqueue(QUENODE a)
{
	rear = (rear + 1) % MAX_ITEMS;
	items[rear] = a;
}
void JCSQue::dequeue(QUENODE& a)
{
	front = (front + 1) % MAX_ITEMS;
	a = items[front];
}

⌨️ 快捷键说明

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