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

📄 listadoestudiantes.cpp

📁 linkeslist icarnegie
💻 CPP
字号:
#include "stdafx.h"
#include "ListadoEstudiantes.h"

//---------------------------------------------------------------------------
ListadoEstudiantes::ListadoEstudiantes()
	: tamano(0), nodoInicio(NULL)
{
}
//---------------------------------------------------------------------------
int ListadoEstudiantes::cantidad()
{
	return tamano;
}
//---------------------------------------------------------------------------
int ListadoEstudiantes::Agregar(Estudiante *Nuevo)
{
	Estudiante *EstudianteObj = new Estudiante;

	EstudianteObj          = Nuevo;
	EstudianteObj->nodoSiguiente    = nodoInicio;
	
	EstudianteObj->nodoAnterior = NULL;
	
	if(!listadoVacio())
		nodoInicio->nodoAnterior = EstudianteObj;
		
	nodoInicio            = EstudianteObj;

	return tamano++;
}
bool ListadoEstudiantes::listadoVacio()
{
	return ( this->nodoInicio == NULL);
}
//---------------------------------------------------------------------------
Estudiante *ListadoEstudiantes::Obtener(int Position)
{
	Estudiante *nodoActual = nodoInicio;
	
	for(int i = 0; i < Position && nodoActual != NULL; i++)
	{
		nodoActual = nodoActual->nodoSiguiente;
	}

	return nodoActual;
}
//---------------------------------------------------------------------------
bool ListadoEstudiantes::Borrar()
{
	if( nodoInicio == NULL )
	{
		std::cout << "The list is empty\n";
		return false;
	}
	else
	{
		Estudiante *nodoActual;

		nodoActual = nodoInicio->nodoSiguiente;
		nodoInicio->nodoSiguiente = nodoActual->nodoSiguiente;
		delete nodoActual;
		tamano--;
		return true;
	}
}
//---------------------------------------------------------------------------
bool ListadoEstudiantes::Borrar(int Position)
{
	if( Obtener(Position) == NULL )
		return false;
	else
	{
		Obtener(Position - 1)->nodoSiguiente = Obtener(Position+1);
		delete Obtener(Position);
		tamano--;
		return true;
	}
}
//---------------------------------------------------------------------------
bool ListadoEstudiantes::Buscar(Estudiante* Item)
{
	Estudiante *nodoActual;

	if( Item == NULL )
		return false;
	for(nodoActual = nodoInicio; nodoActual != NULL; nodoActual = nodoActual->nodoSiguiente)
	{
		if( (nodoActual->matricula == Item->matricula))
			return true;
		else
			nodoActual->nodoSiguiente;
	}

	return false;
}

bool ListadoEstudiantes::imprimirListado()
{
	Estudiante *nodoActual;
	Estudiante *nodoAnterior;

	std::cout << "\nListado desde inicio hasta fin:";
	for(nodoActual=nodoInicio; nodoActual!=NULL ;nodoActual=nodoActual->nodoSiguiente)
	{
		std::cout << "\nInformacion Estudiante:";
		std::cout << "\nNombre:      " << nodoActual->nombre;
		std::cout << "\nApellido: " << nodoActual->apellido;
		std::cout << "\nMatricula: $" << nodoActual->matricula << std::endl;
		nodoAnterior=nodoActual;
	}

	std::cout << "\nListado fin hasta inicio:";

	for(nodoActual=nodoAnterior; nodoActual!=NULL ;nodoActual=nodoActual->nodoAnterior)
	{
		std::cout << "\nInformacion Estudiante:";
		std::cout << "\nNombre:      " << nodoActual->nombre;
		std::cout << "\nApellido: " << nodoActual->apellido;
		std::cout << "\nMatricula: $" << nodoActual->matricula<< std::endl;
	}

	return true;
}

//---------------------------------------------------------------------------

⌨️ 快捷键说明

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