Programa en memoria dinamica

Solo disponible en BuenasTareas
  • Páginas : 3 (511 palabras )
  • Descarga(s) : 0
  • Publicado : 28 de enero de 2011
Leer documento completo
Vista previa del texto
#include
#include

using namespace std;
typedef struct nodo * pnodo;

struct nodo{
int mat;
char nom[15];
float saldo;
struct nodo *sig;
};
pnodollena_nodo(){
struct nodo *p;
p=(struct nodo *)malloc(sizeof(struct nodo));
printf("Nombre: ");
scanf("%s",p->nom);
printf("\nMatricula: ");
scanf("%d",&p->mat);printf("\nSaldo: ");
scanf("%f",&p->saldo);
p->sig=NULL;
return p;
}
void esc_nodo(struct nodo *p){
printf("\nMatricula: %d",p->mat);
printf("\nNombre:%s",p->nom);
printf("\nSaldo: %6.2f\n",p->saldo);
}
pnodo inserta_inicio(struct nodo *lista,struct nodo *p){
if(lista==NULL)
lista=p;
else{
p->sig=lista;lista=p;
}
return lista;
}
pnodo inserta_final(struct nodo *lista,struct nodo *p){
struct nodo *q;
q=lista;
if(lista==NULL)
lista=p;
else{while(lista!=NULL){
if(lista->sig==NULL){
lista->sig=p;
lista=NULL;}
else
lista=lista->sig;
}lista=q;
}
return lista;
}
pnodo inserta_x(pnodo lista){
struct nodo *p,*q,*r;
p=llena_nodo();
if(lista==NULL){
lista=p;return lista;
}
else if(p->mat < lista->mat){
p->sig=lista;
lista=p;return lista;
}
q=lista;
r=NULL;
while(q!=NULL){
if(q->mat > p->mat){
p->sig=q;...
tracking img