gracias por tomarse la molestia
PROGRAMA 1 (pila dinamica y debe mostrar la pila completa y la cima de la pila):
Código
#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 10 struct nodo{ char op[10]; struct nodo *pnodo; }; struct nodo *top=NULL; int numNodos=0; struct nodo *new(char *op) { struct nodo *n; n->pnodo=NULL; return n; } struct nodo *pop() { struct nodo *pn; if(numNodos==0){ return NULL; } pn=top; top=top->pnodo; return pn; } struct nodo *push(char *op) { struct nodo *n; if(numNodos==MAX){ //Pila llena return NULL; } n=new(op); if(numNodos>0) //Pila tiene nodos n->pnodo=top; top=&* n->pnodo; return top; } int main() { char *op; int menu=0; struct nodo *n; do { switch(menu){ case 1: n=new(char *op); op=push(op, n); break; case 2: n=pop(char *oper); break; case 3: break; case 4: return 0; break; default: } }while(op!=4); }
PROGRAMA 2 (cola doble)
Código
PROGRAMA 3 (codigo de lista circular pasar a lista doblemente ligada circular conforme al menu)
#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 10 struct colaDoble{ struct cola *head; struct cola *tail; int nodos; }; struct cola{ int cola; struct cola *sig; struct cola *ant; struct cola *act; }; int colaVacia(struct colaDoble *CC) { return CC->nodos==0; //return cola *head==cola *tail } int colaLlena(struct colaDoble *CC) { return CC->nodos==MAX; } int insertarCC(struct colaDoble *CC, struct cola C) { if(colaLlena(CC)==1){ return 0; } if(colaVacia(CC)==1) CC->head=&C; else CC->tail.sig=C; CC.tail=&C; CC.nodos++; return 1; } struct cola* eliminarCC(struct colaDoble *CC) { short cola *C; if(colaVacia==1){ return NULL; }=CC->tail; if(CC.nodos==1) CC->head=CC.tail=NULL; else CC->head=CC.head.sig; CC.nodos--; return C; }; struct cola nuevo() { struct cola n; n.sig=NULL; return n; }; int main() { int op; do { switch(op) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: return 0; default: } }while(op!=6); return 0; }
Código
#include<stdio.h> #include<stdlib.h> struct nodo{ char nombre[40]; struct nodo *next; }; struct nodo *crearNodo(){ struct nodo *x; x->next=NULL; return x; } struct nodo *buscar(struct nodo *lista, char *k){ if(lista==NULL) return NULL; while(lista){ break; lista=lista->next; } return lista; } struct nodo *borrar(struct nodo *lista, char *k){ struct nodo *ant, *act; if(lista==NULL) return NULL; ant=lista; act=lista; while(act!=NULL){ break; } ant=act; act=act->next; } if(act!=NULL){ if(act==lista) lista=act->next; ant->next=act->next; } return lista; } void listar(struct nodo *lista){ if(lista==NULL){ return; } do { lista=lista->next; }while(lista!=NULL); } struct nodo *insertar(struct nodo *head, struct nodo *x){ if(head!=NULL) x->next=head; head=x; return head; } int main() { char nombre[40]; int op=0; struct nodo *x; struct nodo *head=NULL; while(1){ switch(op){ case 1: x=crearNodo(); head=insertar(head,x); break; case 2: x=borrar(head, nombre); if(x!=NULL){ //head= x; } else break; case 3: if(buscar(head, nombre)==NULL) else break; case 4: listar(head); break; case 5: return 0; default: } } }
Mod: Los códigos deben ir en etiquetas GeSHi, no escribas el título en mayúsculas