Extras din curs
/*-- tlista.h --- LISTA SIMPLU INLANTUITA
cu elemente de tip intreg ---*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "random.h"
#ifndef _LISTA_SIMPLU_INLANTUITA_
#define _LISTA_SIMPLU_INLANTUITA_
typedef int TEL, *AEL; /* Element si Adr_Element */
typedef struct cellista
{ TEL info;
struct cellista * urm;
} TCel, *TLista, **ALista;
typedef int (*TFPrelEL)(AEL e,...);
/*-- operatii elementare --*/
TLista AlocCel(AEL);
/* adresa celulei create sau NULL */
int InsInc (ALista, AEL);
/* inserare la inceput reusita sau nu (1/0) */
ALista InsSfL (ALista, AEL);
/* adresa legatura la celula inserata sau NULL */
int ElimPL (ALista); /* elimina primul */
void DistrL (ALista); /* elimina toate celulele */
size_t LungL (ALista); /* nr.elemente din lista */
ALista CautaL (ALista aL, TFPrelEL f, int Gasit);
/* daca exista celula pt.care f(adr.element)
intoarce Gasit atunci intoarce adresa leg.
catre celula respectiva, altfel intoarce
adr.campului urm din ultima celula */
/*-- operatii de afisare si creare;
incep prin afisarea unui antet --*/
void AfisareL(ALista aL, char *antet,
char *format, char *sf);
/* Afiseaza valorile elementelor din lista,
cu formatul specificat, urmate de sirul sf.
Exemplu de apel:
Afisare(&L1,"Prima lista: [", " %i", " ]n"); */
TLista GenerL (size_t N, int v1, int v2, char *antet);
/* genereaza lista cu cel mult N elemente,
cu valori intre v1 si v2 */
#endif
Conditia de ordonare: perechile de elemente respecta o relatie de ordine.
Algoritm TestOrd
{ daca lista vida sau cu o singura celula
atunci intoarce “neconcludent”;
cat timp exista doua celule de analizat
{ daca relatia de ordine nu este indeplinita
atunci intoarce “neordonat”;
altfel avans in lista;
}
intoarce “neordonat”;
}
Conținut arhivă zip
- Structuri de Date - Curs 4.ppt