PLE:Unidad6Ejercicio02

Fichero lista.h


 * 1) include 
 * 2) include 
 * 3) include 

class nodo {   public: int n;       nodo *ps; };

class lista {       private: nodo *raiz; public: lista; ~lista; void inserta_nodo_inicio(int num); void inserta_nodo_final(int num); void borra_nodo_inicio; void borra_nodo_final; void visualizarLista; void abrirLista(char *); void guardarLista(char *); };

Fichero lista.cpp


 * 1) include "lista.h"

lista::lista {       raiz = NULL; }

lista::~lista {       while(raiz != NULL) borra_nodo_inicio; }

void lista::inserta_nodo_inicio(int num) {       nodo *nuevo; // insertamos el nodo al principio nuevo = new nodo; nuevo->n = num; nuevo->ps = raiz; raiz = nuevo; }

void lista::inserta_nodo_final(int num) {       nodo *nuevo,*ultimo; nuevo = new nodo; nuevo->n = num; if(raiz == NULL) {               nuevo->ps = NULL; raiz = nuevo; }       else {               ultimo = raiz; while(ultimo->ps != NULL) {                       ultimo = ultimo->ps; }               nuevo->ps = ultimo->ps; ultimo->ps = nuevo; } }

void lista::borra_nodo_inicio {       nodo *pos = raiz; if(raiz != NULL) {               raiz = pos->ps; free(pos); //delete pos; } }

void lista::borra_nodo_final {       nodo *pos = raiz, *ant = raiz; if(raiz != NULL) {               while(pos->ps!=NULL) {                       ant = pos; pos = pos->ps; }               if (pos == raiz) raiz = raiz->ps; else ant->ps = NULL; free(pos);//delete pos; } }

void lista::visualizarLista {       nodo *li = raiz; while(li!=NULL) {               cout << li->n << '\t'; li = li->ps; }       cout << endl; }

void lista::abrirLista(char *nom) {       FILE *f; int num; f=fopen(nom,"r"); if (f!=NULL) {		if(raiz == NULL) {			fscanf(f,"%d",&num); do {				inserta_nodo_final(num); fscanf(f,"%d",&num); }while(!feof(f)); fclose (f); }	} }

void lista::guardarLista(char *nom) {       FILE *f; nodo *pl = raiz; f=fopen(nom,"w"); if (f!=NULL) {		while(pl != NULL ) {		       fprintf(f,"%d\t",pl->n); pl = pl->ps; }		fclose (f); } }

Fichero ej02.cpp


 * 1) include 
 * 2) include 
 * 3) include "lista.h"

void main {       lista l1,l2; l1.inserta_nodo_inicio(8); l1.inserta_nodo_inicio(6); l1.inserta_nodo_inicio(4); l1.inserta_nodo_inicio(1); l1.visualizarLista; getch; l1.borra_nodo_inicio; l1.visualizarLista; l1.borra_nodo_final; l1.visualizarLista; getch; l1.guardarLista("lista.txt"); l2.abrirLista("lista.txt"); l2.visualizarLista; getch; }