Tengo este avance de mi programa
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
typedef struct _Nodo{
int dato;
struct _Nodo *sig;
}Nodo;
Nodo *reservarmemoria(int dato){
Nodo *espacio;
espacio = (Nodo*) malloc(sizeof(Nodo));
if(espacio != NULL){
printf("Error");
}else{
espacio -> dato = dato;
espacio -> sig = NULL;
return espacio;
}
}
Nodo *alta(int dato, Nodo *cima){
Nodo *box;
box = reservarmemoria(dato);
if (cima != NULL){
box -> sig = cima;
}
return box;
}
Nodo *baja (Nodo *cima){
Nodo *aux;
if (cima != NULL){
aux = cima;
cima = aux -> sig;
free(aux);
}
return cima;
}
void mostrar (Nodo *cima){
if (cima == NULL){
printf ("\n No hay nodos");
}else{
while (cima != NULL){
printf ("Elemento %d\n", cima -> dato);
cima = cima -> sig;
}
}
}
void tamano (Nodo *cima){
int i=0;
if (cima == NULL){
printf ("\n No hay nodos");
}else{
while (cima != NULL){
cima = cima -> sig;
i++;
}
printf ("El tamaño es: %d\n", i);
}
}
int main(){
int op,dato;
printf ("1.-Dar de alta un Nodo\n2.-Dar de baja un Nodo\n3.-Mostrar todos los Nodos\n4.-Mostrar el tamaño\n5.-Salir\n");
scanf ("\n%d", &op);
do{
switch (op){
case 1:
printf ("Alta\nIntrodusca el numero a guardar en el nodo\n");
scanf ("%d\n", &dato);
alta(dato,);
break;
case 2:
printf("Baja\n");
baja(cima);
break;
case 3:
mostrar(cima);
break;
}
}while(op !=5);
return 0;
}
Se que tengo que insertar una nueva estructura en el main que va a ser la que mande a cima pero no se de que manera hacerlo me preguntaba si alguien podría asesorarme
CitarSe que tengo que insertar una nueva estructura en el main que va a ser la que mande a cima
No sé a qué te refieres con esto. Si puedes explicarte un poco... :-X
Ya logre resolver mi duda con el programa
si a alguien le sirve el codigo, aqui lo dejo
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct Nodo
{
int Dato;
struct Nodo *sig;
}Nodo;
Nodo *Crear (int);
Nodo *Alta (int, Nodo *top);
Nodo *Baja (Nodo *top);
void Mostrar(Nodo *top);
void Contar (Nodo *top);
int main(){
struct Nodo *Pila;
Pila=NULL;
int Op=1,dato,o,size;
do {
printf ("¿Que desea hacer?\n1:Añadir valor\n2:Mostrar valores\n3:Eliminar nodo\n4:Contar nodos\n5:Salir\n");
scanf ("%d",&Op);
switch (Op){
case 1:
printf ("\n\tIngrese el valor:");
scanf ("%d",&dato);
Pila=Alta(dato,Pila);
system("cls");
break;
case 2:
Mostrar(Pila);
system("pause");
system("cls");
break;
case 3:
Pila=Baja(Pila);
system("cls");
break;
case 4:
Contar(Pila);
system("pause");
system("cls");
break;
case 5:
break;
default :
printf( "\nOpcion incorrecta.\n" );
}
}while (Op!=5);
}
Nodo *Crear (int dato){
Nodo *espacio;
espacio=(Nodo*)malloc(sizeof(Nodo));
espacio->Dato=dato;
espacio->sig=NULL;
return espacio;
}
Nodo *Alta (int dato,Nodo *top)
{
Nodo *box;
box=Crear(dato);
if (top==NULL){
top=box;
}
else
{
box->sig=top;
top=box;
}
return top;
}
Nodo *Baja (Nodo* top){
Nodo *aux;
if (top==NULL)
{
return 0;
}
else {
aux=top;
top=aux->sig;
free (aux);
return top;
}
}
void Mostrar (Nodo *top){
if(top==NULL)
{
printf ("\nNo hay ningun dato\n");
}
else {
while (top!=NULL)
{
printf ("\n| %d |\n ___ ",top->Dato);
top=top->sig;
}
printf("\n");
}
}
void Contar (Nodo *top){
int Cont=0;
if(top==NULL)
{
printf ("No hay nada\n");
}
else {
while (top!=NULL)
{
Cont=Cont+1;
top=top->sig;
}
printf("El tamaño es: %d\n",Cont);
}
}