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

📄 circle.cpp

📁 王红梅编《数据结构》大多数的实验源码。内附详细的实验报告。
💻 CPP
字号:
#include <iostream.h>
#include "Circle.h"

Circle::Circle(int n)
{
	Node *tmp;
	Node *p;
	p = new Node;
	p->data = 1;
	Node *first = p;
	for (int i = 2; i <= n; i++)
	{
		tmp		= new Node;
		tmp->data	= i;
		p->next		= tmp;
		p		= p->next;
	}
	rear		= p;
	p->next		= first;
	currentPointer	= rear->next;
}

Circle::~Circle()
{
	Node *p		= rear->next;
	Node *tmp;
	rear->next	= NULL;
	while (p)
	{
		tmp	= p;
		p	= p->next;
		delete tmp;
	}
}

int Circle::Delete(int value)
{
	Node *p = rear;
	Node *tmp;
	while (p->next->data != value)
		p = p->next;
	if (p->next == rear)
		rear = p;
	if (currentPointer == p->next)
		currentPointer = currentPointer->next;
	tmp	= p->next;
	int x	= tmp->data;
	p->next	= tmp->next;
	delete tmp;
	return x;
}

void Circle::PrintCircle() const
{
	Node *p = rear->next;
	while (p != rear)
	{
		cout << p->data << " ";
		p = p->next;
	}
	cout << p->data;
	cout << endl;
}

Node Circle::GetCurrentNode() const
{
	return *currentPointer;
}

void Circle::MoveNext()
{
	currentPointer = currentPointer->next;
}

bool Circle::IsOnlyOneElement() const
{
	if (rear == rear->next)
		return true;
	return false;
}

⌨️ 快捷键说明

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