#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
typedef struct nodo
{
int info;
nodo *destro;
nodo *sinistro;
}elem;
int i,dim,num;
elem *tree;
elem * metti(int num){
elem *r;
r=(elem*)malloc(sizeof(elem));
r->info=num;
r->sinistro=NULL;
r->destro=NULL;
return r;
}
elem * inserisci(elem *r,int num){
if(!r){
r=metti(num);
}
else if(r->info<=num){
r->destro=inserisci(r->destro,num);}
else{
r->sinistro=inserisci(r->sinistro,num);
}
return r;
}
void preorder(elem *t)
{ if(t){
cout<<t->info;
preorder(t->sinistro);
preorder(t->destro);
}
}
elem * search(elem *r,int num){
if(r->info==num){
cout<<"trovato:"<<num;
}
else if(r->info<=num){
r->destro=search(r->destro,num);}
else{
r->sinistro=search(r->sinistro,num);
}
return r;
}
int main() {
tree=NULL;
cout<<"quanti elementi vuoi inserire";
cin>>dim;
for(i=0;i<=dim;i++)
{
cout<<"inserisci numero";
cin>>num;
tree=inserisci(tree,num);
}
cout<<"........................"<<endl;
preorder(tree);
cout<<"quale elemento vuoi cercare?";
cin>>num;
search(tree,num);
return 0;
}
questo è un bst||||||||||||
............................................................................................................................................................................
#include <iostream>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;
typedef struct edge *Edgeptr;
typedef struct Graphnode *Nodeptr;
typedef struct Graphnode{
char nome;
int color=1;
Nodeptr next;
Nodeptr prev;
Edgeptr Adjlist;
}Nodo;
typedef struct edge{
int peso;
Nodeptr prenodo;
Nodeptr nextnodo;
Edgeptr nextedge;
}punt;
Nodeptr Pelem=NULL;
Nodeptr q=NULL,S;
Nodeptr head;
Nodeptr Chead,cprev;
////////////////////////////////////////////////////////////////
void crea (Nodeptr *testa){
Nodeptr q=NULL;
char nome;
q=(Nodeptr)malloc(sizeof(Nodo));
cout<<"inserisci lettera nodo";
cin>>nome;
if(Pelem==NULL)
{
Pelem=*testa;
}
q->nome=nome;
q->next=*testa;
*testa=q;
}
//////////////////////////////////////////////////////////////
void creacoda (Nodeptr *testa,Nodeptr *coda,char l){
Nodeptr q=NULL;
q=(Nodeptr)malloc(sizeof(Nodo));
q->nome=l;
q->next=*testa;
*testa=q;
if(*coda==NULL)
*coda=*testa;
(*coda)->prev=q;
*coda=*testa;
}
///////////////////////////////////////////////////////////////////////
void link(Nodeptr *testa)
{
int i,j;
char a,e;
Edgeptr R;
Nodeptr X=NULL;
Nodeptr Y=NULL;
X=*testa;
cout<<"chi vuoi collegare?:";
cin>>a;
cout<<"con:";
cin>>e;
while(X->nome!=a){
X=X->next;
i++;
}
R=(Edgeptr)malloc(sizeof(punt));
X->Adjlist=R;
Y=*testa;
while(Y->nome!=e){
Y=Y->next;
j++;
}
//cout<<X->nome;
//cout<<Y->nome;
/* cout<<"con distanza?:";
cin>>X->Adjlist->peso;*/
X->Adjlist->nextnodo=Y;
}
//////////////////////////////////////////////////////
void decoda(Nodeptr *p)
{
cout<<(*p)->nome<<";";
if(head->Adjlist->nextnodo==NULL){
Chead=NULL;
}
}
//////////////////////////////////////////////////////
void visit(Nodeptr *testa){
*testa=Pelem;
(*testa)->color=2;
creacoda(&Chead,&cprev,(*testa)->nome);
cout<<(*testa)->nome<<";";
while(Chead!=NULL){
if((*testa)->Adjlist->nextnodo!=NULL)
(*testa)->Adjlist->nextnodo->color=1;
if((*testa)->Adjlist->nextnodo->color==1){
if((*testa)->Adjlist->nextnodo!=NULL)
(*testa)->Adjlist->nextnodo->color=2;
creacoda(&Chead,&cprev,(*testa)->Adjlist->nextnodo->nome);
if((*testa)->Adjlist->nextnodo!=NULL)
(*testa)=(*testa)->Adjlist->nextnodo;
cout<<"miao,";
}
decoda(&Chead);
}
}
//////////////////////////////////////////
/////////////////////////////////////////
int dim,i;
char a,b;
char nome;
////////////////////////////////////////////
int main() {
cout<<"quanti nodi vuoi?:";
cin>>dim;
for(i=1;i<=dim;i++){
q=(Nodeptr)malloc(sizeof(Nodo));
cout<<"inserisci lettera nodo";
cin>>nome;
q->nome=nome;
q->next=head;
if(Pelem==NULL){
Pelem=head;
}
head=q;
}
for(i=1;i<=dim-1;i++){
link(&head);
}
visit(&head);
return 0;
}
.........................................................................................................
so che non c entra molto con il game develop spero di non risultare a terra
non ci sono i commenti ma sono esercizietti non ho mai programmato cose "grosse"