#include <stdio.h>
#include <stdlib.h>
struct nodo{
char dato;
struct nodo *sig;
};
void insertarcola(nodo *&, nodo *&, char&);
bool colavacia(nodo *);
void scola(nodo *&,nodo *&, char&);
void insertarcola(nodo *&frente, nodo *&fin, char &n){
nodo *nuevo_nodo= new nodo();
nuevo_nodo->dato=n;
nuevo_nodo->sig=NULL;
if ( colavacia(frente) ) {
frente=nuevo_nodo;
}else{
fin->sig=nuevo_nodo;
}
fin=nuevo_nodo;
printf("El elemento %c fue agregado \n",n);
}
bool colavacia(nodo *frente){
return (frente==NULL)? true:false;
}
void scola(nodo *&frente, nodo*&fin, char &n){
n=frente->dato;
nodo *aux=frente;
if(frente==fin){
frente=NULL;
fin=NULL;
}else{
frente=frente->sig;
}
delete aux;
printf("El elemento %c fue eliminado \n",n);
}
main(){
system("color f9");
nodo *frente=NULL;
nodo *fin=NULL;
int a,i=0,b=0;
char dato;
do{
printf("1. Agregar elementos a la cola \n");
printf("2. Eliminar elementos de la cola \n");
printf("3. Salir \n");
scanf("%d",&a);
switch (a){
case 1: printf("digite un letra: ");
scanf("%s",&dato);
insertarcola(frente,fin,dato);
break;
case 2: while (frente != NULL){
scola(frente,fin,dato);
}
}
}while (a != 3);
}
#include <stdio.h>
#include <conio.h>
#include <iostream>
struct nodo{
float dato;
nodo *der;
nodo *izq;
};
nodo *arbol = NULL;
nodo *crearnodo(float);
void insertarnodo(nodo *&, float);
void mostrarnodo(nodo *&, float);
void mostrarArbol(nodo *, float);
bool buscar(nodo *, float);
void preorden(nodo *);
void inorden(nodo *);
void postorden (nodo *);
void menu();
main(){
menu();
}
void menu(){
system("color f9");
int opc,contador=0;
float dato;
do{
printf("MENU \n");
printf("1. Crear nuevo nodo \n");
printf("2. Mostrar el arbol \n");
printf("3. buscar un elemento en el arbol \n");
printf("4. Recorrer el arbol en pre-orden \n");
printf("5. Recorrer el arbol en in-orden \n");
printf("6. Recorrer el arbol en Post-orden \n");
printf("7. salir \n");
printf("digite una opcion: \n");
scanf("%d",&opc);
switch(opc){
case 1:printf("digite un numero: \n");
scanf("%f",&dato);
insertarnodo(arbol,dato);
printf("\n");
system ("pause");
break;
case 2: printf("El arbol es: \n");
mostrarArbol(arbol,contador);
printf("\n");
system ("pause");
break;
case 3: printf("\n Digite el elemento a buscar: \n");
scanf("%f",&dato);
if(buscar(arbol,dato) == true){
printf("El elemento %f se ha encontrado",dato);
}else{
printf("El elemento no fue encontrado");
}
printf("\n");
system ("pause");
case 4: printf("Pre-orden");
preorden(arbol);
printf("\n\n");
system ("pause");
break;
case 5: printf("In-orden");
inorden(arbol);
printf("\n\n");
system ("pause");
break;
case 6: printf("Post-orden");
postorden(arbol);
printf("\n\n");
system ("pause");
break;
}
system ("cls");
}while(opc!=7);
}
nodo *crearnodo(float n){
nodo *nuevo_nodo = new nodo;
nuevo_nodo->dato=n;
nuevo_nodo->der=NULL;
nuevo_nodo->izq=NULL;
return nuevo_nodo;
}
void insertarnodo (nodo *&arbol, float n){
if(arbol==NULL){
nodo *nuevo_nodo = crearnodo(n);
arbol = nuevo_nodo;
}else{
int vz = arbol->dato;
if(n<vz){
insertarnodo(arbol->izq,n);
}else{
insertarnodo(arbol->der,n);
}
}
}
void mostrarArbol(nodo *arbol, float cont){
if(arbol == NULL){
return;
}else{
if(arbol != NULL){
mostrarArbol(arbol->der,cont+1);
for (int i=0; i<cont;i++){
printf(" ");
}
printf("%f \n ",arbol->dato);
mostrarArbol(arbol->izq,cont+1);
}
}
}
bool buscar(nodo *arbol,float n) {
if(arbol == NULL){
return false;
}else{
if(arbol->dato == n ){
return true;
}else{
if(n<arbol->dato){
return buscar(arbol->izq,n);
}else{
return buscar(arbol->der,n);
}
}
}
}
void preorden (nodo *arbol){
if(arbol == NULL){
return;
}else{
printf("%f------",arbol->dato);
preorden(arbol->izq);
preorden(arbol->der);
}
}
void inorden(nodo *arbol){
if(arbol == NULL){
return;
}else{
inorden (arbol->izq);
printf("%f------",arbol->dato);
inorden(arbol->der);
}
}
void postorden(nodo *arbol){
if(arbol == NULL){
return;
}else{
postorden(arbol->izq);
postorden(arbol->der);
printf("%f------",arbol->dato);
}
}