Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-10-2005, 22:23   #1
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
urgente C alberi ternari!!!

devo mettere dei percorsi di nodi della mia struttura in un albero ternario, questo albero rappresenta i possibili cammini dal nodo start al nodo end.

Codice:
typedef int polline;

typedef int prato;

/*key : indice della posizione del fiore sul piano*/
struct key{
	int X;
	int Y;
	};

typedef struct key key;


/*albero binario: rappresenta i punti del piano*/
struct searchtree {
	prato id_prato;
	polline raccolto;
	key chiave;
	struct searchtree *left, *right, *up;
}; 

typedef struct searchtree searchtree;

/*campo : rappresenta un insieme di prati che hanno punti in comune*/
struct field{
	int id_campo;
	int id_prato;
	struct field *next;
	};

typedef struct field field;

/*lista di campi*/
field *PRATO_FIORITO;

struct routetree{
	polline totale;
	key chiave;
	struct routetree  *left, *right, *center, *up;
};

typedef struct routetree routetree;

routetree *CAMMINI;
routetree *createroutetree(searchtree *start){
	routetree *q = malloc(sizeof(routetree));
	q->left=q->right=q->center=NULL;
	q->totale=start->raccolto;
	q->chiave=start->chiave;
	return q;
}

int checkstep(key *step, searchtree *end){
	int deltax=(abs)(end->chiave.X - step->X);
	int deltay=(end->chiave.Y - step->Y);
	if(deltay>=deltax)
		return 1;
	return 0;
}

routetree *buildroutetree(searchtree *piano, routetree *cammini, searchtree *end){
			searchtree *searchtree_tmp;
			key *key_tmp;
			if(isMin(cammini->chiave,end->chiave)>0){
				key_tmp->X=cammini->chiave.X-1;
				key_tmp->Y=cammini->chiave.Y+1;
				if(searchtree_tmp=itsearch(piano, *key_tmp)){
					if(checkstep(key_tmp, end)){
						cammini->left=malloc(sizeof(routetree));
						cammini->left->up=cammini;
						cammini->left->chiave=searchtree_tmp->chiave;
						cammini->left->totale=searchtree_tmp->raccolto+cammini->totale;
						cammini->left->left=buildroutetree(piano, cammini->left, end);
						cammini->left->center=buildroutetree(piano, cammini->left, end);
						cammini->left->right=buildroutetree(piano, cammini->left, end);
					}
					else
						cammini->left=NULL;
				}
				else
				cammini->left=NULL;
				
				key_tmp->X=cammini->chiave.X;
				key_tmp->Y=cammini->chiave.Y+1;
				if(searchtree_tmp=itsearch(piano, *key_tmp)){
					if(checkstep(key_tmp, end)){
						cammini->center=malloc(sizeof(routetree));
						cammini->center->up=cammini;
						cammini->center->chiave=searchtree_tmp->chiave;
						cammini->center->totale=searchtree_tmp->raccolto+cammini->totale;
						cammini->center->left=buildroutetree(piano, cammini->center, end);
						cammini->center->center=buildroutetree(piano, cammini->center, end);
						cammini->center->right=buildroutetree(piano, cammini->center, end);
					}
					else
						cammini->center=NULL;
				}
				else
					cammini->center=NULL;
				
				key_tmp->X=cammini->chiave.X+1;
				key_tmp->Y=cammini->chiave.Y+1;
				if(searchtree_tmp=itsearch(piano, *key_tmp)){
					if(checkstep(key_tmp, end)){
						cammini->right=malloc(sizeof(routetree));
						cammini->right->up=cammini;
						cammini->right->chiave=searchtree_tmp->chiave;
						cammini->right->totale=searchtree_tmp->raccolto+cammini->totale;
						cammini->right->left=buildroutetree(piano, cammini->right, end);
						cammini->right->center=buildroutetree(piano, cammini->right, end);
						cammini->right->right=buildroutetree(piano, cammini->right, end);
					}
					else
						cammini->right=NULL;
				}
				else
					cammini->right=NULL;				
			}		
	return cammini;
}
questi li spezzoni di codice, ho cercato di creare il primo nodo con il metodo createroutetree() e poi riempirlo ricorsivamente con build routetree()

lo so fa schifo, se qualcuno mi posta il codice per costruire un albero ternario gli offro una birra a Milano (anche 2)
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 02-10-2005, 13:19   #2
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
panico panico, probabilmente gli alberi ternari sono una cazzata....

Dijkstra, per usare questo algoritmo come faccio? nel senso io mio albero binario è ordinato in base alla chiave (X,Y)

ma ad esempio per andare da 0,0 a 2,2 se il cammino esiste esso è per forza 0,0-1,1-2,2

la mia ape si può muovere solo in alto ed in diagonale alta (chiaramente se esistono tutti i nodi che compongono il cammino)

se ci sono + cammini prendo il cammino con il quantitativo di polline maggiore.

ma come si applica Dijkstra ad un albero binario? e che modifiche devo fare??? i valori di polline eventualmente negativi danno problemi???
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Space Pioneer starebbe realizzando un pr...
SpaceX ritirerà ''a breve'' il Fa...
La Luna ha un nuovo cratere di grandi di...
ROG Cronox: ASUS alza l'asticella dei ca...
Lenovo annuncia nuovi sistemi per la vir...
M6 e M5 Ultra, i primi benchmark conferm...
La nuova falla della cybersecurity &egra...
The Blood of Dawnwalker, il sequel potre...
Colpiti i data center Amazon: irrecupera...
Google Wallet, nuova interfaccia in arri...
iPhone Duo, problemi di produzione per i...
Firefox diventa più veloce con PDF e JPE...
WhatsApp, arriva su iOS la nuova scorcia...
Snap presenta Specs: realtà aumentata, c...
SteamOS verso un cambiamento epocale: ar...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v