QReferate - referate pentru educatia ta.
Cercetarile noastre - sursa ta de inspiratie! Te ajutam gratuit, documente cu imagini si grafice. Fiecare document sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Documente informatica

Fortran



Ea a fost apelata in mai multe functii pentru a putea urmari momentele in care se dezaloca obiectele care sant instantieri ale clasei tnod.

23.12 Sa se defineasca tipul abstract slist pentru implementarea listei simplu inlantuite.

Listele simplu inlantuite au fost implementate in limbajul C in capitolul 11.
Pentru gestiunea listelor simplu inlantuite s-au folosit doua variabile prim si ultim care sant pointeri sper primul si respectiv ultimul nod al listei.
Aceste valori se vor utiliza si in cazul de fata cu acelasi scop.Ele sunt date membru protejate ale tipului abstract slist
Avantajul implementarii tipului abstract slist este acela ca , se pot defini simultan si simplu orice obiecte de tip lista.


Functiile membru ale tipului abstract slist sunt:
constructor implicit ;
deconstructor ;
adaugarea unui nou nod inaintea primului nod al listei ;
stergerea primului nod al listei ;
stergerea ultimului nod al listei ;
cautarea in lista a unui nod ;
afisarea datelor aflate in nodurile listei.
Nodurile listei sunt obiecte de tip tnod, tip definit in exercitiul 23.11

FISIERUL BXXIII12H

#ifndef __BXXIII11_H
#include "BXXIII1.CPP"
#define __ BXXIII1_H

class slist {
tnod *prim ;
tnod *ultim ;
public :
slist ( ) ; // constructor
~slist ( ) ; //destructor
tnod *adauga (tod*) ; //adauga un nod dupa cel spre care
//pointeaza ultim
tnod *insereaza (tnod *p); //insereaza un nod inaintea
//celui spre care pointeza prim
void sprim ( ) ; //sterge primul nod din lista
void sultim ( ) ; //sterge ultimul nod al listei

tnod *cauta (tnod *p) ;
/* - cauta nodul din lista pentru care p -> cuvant pointeaza
spre un sir identic cu cel care pointeaza cuvant din nod ;
-returneaza pointerul spre nodul respectiv sau zero daca nu
exista un astfel de nod */

void afislist ( ) ; //afiseaza datele din nodurile listei
} ;
Functiile membru ale clasei slist se definesc in fisierul de extensie CPP, de mai jos

FISIERUL BXXIII12

#idndef __BXXIII12_H
#include "BXXIII12.H"
#define __BXIII12_H
#endif

inline slist : : slist ( ) //constructor
{
prim = ultim = 0 ;
}

slist : : ~slist ( ) //destructor ; distruge toate nodurile listei
{
tnod *p, *q ;

for (p = prim ; p ; p=q) {
q=p->urm ; //pointer spre nodul urmator
delete p ; //operatorul delete supraincarcat
}
prim = ultim = 0 ;
}
tnod *slist::adauga(tnod*p) //adauga un nod dupa ultimul nod al listei
{
if (prim == 0) //lista vida
prim = p ;
else ultim -> urm = p ;
ultim = p ;
return p ;
}

tnod *slist ; : insereaza (tnod *p)
//insereaza un nou nod inaintea celui spre care pointeaza prin
{
if ( prim = = 0 ) //lista vida
ultim = p ;
else p -> urm = prim ;
prim = p ;
return p ;
}

void slist : : sprim ( ) //sterge primul nod din lista
{
if (prim0 {
tnod *p = prim -> urm ;
delete prim ; //se aplica operatorul delete supraincarcat
prim = p ;
if (prim = = 0 ) ultim = 0 ; //lista a devenit vida
} else
printf ( "lista vida n" ) ;
}

void slist : : sultim ( ) //sterge ultimul nod al listei
{
if (prim) {
tnod 8p,*p1 ;

// p - pointeaza spre nodul curent
p = prim ;

//p1 - poinbteaza spre nodul precendet
p1 = 0 ;
while ( p != ultim ) { //parcurge lista
p1 = p ;
p = p -> urm ;
}
// p - pointeaza spre ultimul nod
//p1 - pointeaza spre nodul precedent
if (p1 = = 0 ) { //lista are un singur nod si devine vida
delete p ; //se aplica operatorul supraincarcat
prim = ultim = 0 ;
return ;
}

//nodul spre care pointeaza p1 devine ultimul nod al listei
p1 -> urm = 0 ;
ultim = p1 ;

//se sterge nodul spre care pointeaza p
delete p ; //se aplica operatorul supraincarcat
} else
printf ( " lista vida n " ) ;
}

tnod *slist : : cauta (tnod *p )
/* - cauta nodul pentru care cuvant pointeaza spre un sir identic cu cel spre
care pointeaza p -> cuvant ;
- returneaza pointerul spre nodul respectiv sau 0 daca nu exista un astfel
de nod. */
{
tnod *q ;

for (q=prim;q;q=q->urm)
if (stricmp (p -> cuvant,q -> cuvant = = 0 )
return q ;
return 0 ;
}
void slist : : afislist ( )
/* - afiseaza pentru fiecare nod:
-cuvant
si
-frecv.
*/
{
int nrlin = 1 ;

for (tnod *p = prim ; p ; p = p -> urm ) {
p -> afistnod ( ) ;
nrlin ++;
if (nrlin %23 = = 0) {
printf("Actionati o tasta pentru a continua n" );
getch ( ) ;
}
}
}

23.

Descarca referat

E posibil sa te intereseze alte documente despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi documentele afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul document pe baza informatiilor de pe site.
{ Home } { Contact } { Termeni si conditii }