Creo que te refieres al nodo de una lista.
un nodo podemos definirlo como el elemento que forma parte de una lista enlazada, se usan ya sea para listas simples, dobles, circulares o una pilas, con ellos puedes realizar diversas operaciones, como crear, eliminar, modificar, presentarlos, moverlos, etc...
Un ejemplo sencillo de una lista simplemente enlazada:
Código C++:
Ver original#include<iostream.h>
#include<conio.h>
struct lista
{
int dato;
struct lista *sig;
};
lista *cab=NULL,*nuevo=NULL,*fin=NULL;
int c=0;
void ingreso()
{
nuevo=new lista;
cout << "NUMERO: "; cin >> nuevo->dato;
if(cab==NULL)
{
nuevo->sig=NULL;
cab=nuevo;
fin=nuevo;
}
else
{
nuevo->sig=NULL;
fin->sig=nuevo;
fin=nuevo;
}
c++;
}
void ordenar()
{
lista *aux,*aux1;
int temp;
if(cab!=NULL)
{
aux=cab;
do
{
aux1=aux;
do
{
if(aux->dato<aux1->dato)
{
temp=aux->dato;
aux->dato=aux1->dato;
aux1->dato=temp;
}
aux1=aux1->sig;
}while(aux1!=NULL);
aux=aux->sig;
}while(aux!=NULL);
}
else
cout << "LISTA VACIA";
}
void imprimir()
{
lista *aux;
if(cab!=NULL)
{
aux=cab;
while(aux!=NULL)
{
cout << aux->dato << endl;
aux=aux->sig;
}
}
else
cout << "LISTA VACIA";
}
void eliminar()
{
lista *an,*si;
int dat;
if(cab!=NULL)
{
cout << "DATO A ELIMINAR: "; cin >> dat;
an=cab;
if(an->dato==dat)
{
cab=cab->sig;
delete an;
}
else
{
do
{
si=an->sig;
if(si->dato==dat)
{
an->sig=si->sig;
delete si;
break;
}
an=an->sig;
}while(si!=NULL);
}
}
else
cout << "LISTA VACIA";
}
void insertar()
{
lista *an,*si;
int p,co=1;
cout << "POSICION : "; cin >> p;
nuevo=new lista;
cout << "DATO: "; cin >> nuevo->dato;
if(p<c)
{
an=cab;
if(p==1)
{
nuevo->sig=cab;
cab=nuevo;
}
else
{
si=an;
do
{
an=si;
si=si->sig;
co++;
}while(co<p);
nuevo->sig=si;
an->sig=nuevo;
}
}
else
{
nuevo->sig=NULL;
fin->sig=nuevo;
fin=nuevo;
}
}
void main()
{
char key;
do
{
clrscr();
cout << "\n\t\t\t-= MENU PRINCIPAL =- ";
cout << "\n\n\t\t\t[1] INGRESAR";
cout << "\n\t\t\t[2] ORDENAR";
cout << "\n\t\t\t[3] IMPRIMIR";
cout << "\n\t\t\t[4] ELIMINAR";
cout << "\n\t\t\t[5] INSERTAR";
cout << "\n\t\t\t[6] SALIR";
key=getche();
clrscr();
switch(key)
{
case '1': ingreso(); break;
case '2': ordenar(); break;
case '3': imprimir(); break;
case '4': eliminar(); break;
case '5': insertar(); break;
}
}while(key!='6');
}