|
|
|
|
Strumenti |
17-06-2020, 14:30 | #1 |
Junior Member
Iscritto dal: Jun 2020
Messaggi: 2
|
Alberi n-ari ordinati: algoritmo di inserimento
Buongiorno a tutti, ho provato a implementare un algoritmo in C++ di inserimento ricorsivo per alberi generici ordinati. Vorrei sapere se qualcuno potrebbe dirmi se è corretto e eventualmente spiegarmi cosa c'è che non va.
Grazie in anticipo a chi cercherà di aiutarmi Codice PHP:
Ultima modifica di 3lisinfor : 17-06-2020 alle 14:46. |
17-06-2020, 20:04 | #2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2745
|
Non è corretto per molti motivi.
Il primo che mi viene in mente è che la struttura che hai definito non è un albero. Il secondo è che è sintatticamente errato, non dovrebbe compilare per via dei path senza return e perché il primo else non segue un if: mancano le graffe per racchiudere le due istruzioni dopo il primo if, scritto in questo modo solo la prima istruzione è dentro all'if, la seconda è fuori dall'if e l'else non segue un if. |
17-06-2020, 22:04 | #3 |
Junior Member
Iscritto dal: Jun 2020
Messaggi: 2
|
Sisi l'indentazione è errata lo so bene, diciamo che questo era solo una bozza non corretta. Ovviamente manca la funzione di creazione, di stampa ecc ma la mia domanda si riferiva esclusivamente all'algoritmo di inserimento.
|
18-06-2020, 07:56 | #4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2745
|
I problemi che ti ho indicato sono piuttosto gravi e non riguardano l'indentazione e le altre funzioni.
Il metodo di inserimento che hai scritto somiglia all'inserimento ordinato in una lista ma sarebbe anche in questo caso scorretto, sia dal punto di vista della sintassi per i motivi che dicevo sia dal punto di vista della semantica... è incompleto. Non riesco ad aiutarti di più di così, sì potrei scriverti il codice corretto ma cosa impareresti? Cerca di usare le indicazioni che ti ho dato per riflettere su quello che hai scritto. Il fatto che la struttura che hai definito non sia un albero è piuttosto lampante, se non te ne convinci non penso tu possa proseguire. |
18-06-2020, 10:06 | #5 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 2990
|
Credo personalmente che, prima di scrivere direttamente codice, dovresti ragionare in termini di logica e pseudocodice.
In primis se è un albero (parliamo di un albero binario per comodità) , avrà un ramo (figlio) destro o sinistro. Per come hai implementato la struttura, sembra più un array di struct che fa.. non capisco bene cosa. Quindi fai un po di pseudocodice del tipo Struttura Albero{ Valore int; albero destro; albero sinistro; } e via così... |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:07.