Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    10

    [C++] Conteggio e stampa nodi di un albero binario

    Ho iniziato lavorare con gli alberi in C. Ho affrontato diversi esercizi su altri argomenti (array, matrici, liste collegate con puntatori e varie operazioni su questi costrutti). Sono comunque nuovo alla programmazione e ho studiato solo argomenti di base, introduttivi insomma.
    La parte finale del corso trattava gli alberi, essendo stati trattati per solo una lezione e in via molto teorica, una volta arrivato alla compilazione vera e propria mi sono trovato molto in difficolt�.
    Ho provato a risolvere un esercizio trovato su compiti di diversi anni fa per vedere di approfondire questo aspetto.

    Testo
    costruire un albero binario, contarne i numeri pari e stampare i nodi con solo il figlio destro.

    Ho provato intanto a costruire l'albero, basandomi sulle poche informazioni del mio libro, dei miei appunti e qualche esempio presente sulle slide del corso

    Il compilatore (utilizzo visual studio) mi da i seguenti errori: errore strumenti del linker LNK2019 e LNK11206 esterni non risolti.

    Questo � il codice non funzionante che ho provato a mettere insieme e che dopo molti tentativi continua a non funzionare

    codice:
    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    #include<stdio.h>
    #include<malloc.h>
    
    
    typedef unsigned short int Boolean; //definizioni per l'uso di booleani
    #define TRUE 1
    #define FALSE 0
    //struttura albero
    struct btree {
    	float value;
    	struct btree * left_ptr;
    	struct btree * right_ptr;
    };
    //dichiarazioni funzioni gestione albero binario
    void init(struct btree ** ptrptr);
    void insert_inorder(struct btree ** ptrptr, float value);
    void visit_r(struct btree * ptr);
    Boolean search(struct btree * ptr, float target);
    //funzioni interazione console
    void getvalue(float *value_ptr);
    void notify_selection_failure(char selection);
    
    
    main() {
    	struct btree *bintree;
    	int size, res_search = FALSE, res_canc = FALSE;
    	size = 5;
    	float value, deleted_value;
    	char selection[10];
    	init(&bintree);
    	printf("Digita uno dei seguenti caratteri per operazioni su albero:\n");
    	printf("-a per fare un inserimento (ordinato)\n");
    	printf("-b per fare una visita\n");
    	printf("-c per fare una ricerca\n");
    	printf("-x per uscire dal programma\n");
    	Boolean exit_required = FALSE;
    	int inserimento = 0;
    
    
    	//struct btree *bintree;
    	do {
    		printf("\nChe operazione vuoi fare? ");
    		scanf("%s", selection);
    		switch (selection[0]) {
    		case 'a'://inserimento
    			getvalue(&value);
    			insert_inorder(&bintree, value);
    			break;
    		case 'b'://vista simmetrica
    			visit_r(bintree);
    			break;
    		case 'c'://ricerca
    			getvalue(&value);
    			res_search = search(bintree, value);
    			if (res_search == TRUE)
    				printf("Trovato!");
    			else
    				printf("Niente, riprova!");
    			break;
    		case 'x': //uscita
    			exit_required = TRUE;
    			break;
    		default:
    			notify_selection_failure(selection[0]);
    		}
    	} while (exit_required == FALSE);
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    10
    Grazie a tutti per aiuti e chiarimenti. perdonate errori stupidi e grossolani, sono alle prime armi e al primo incontro con la programmazione.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Ciao e benvenuto sul forum.

    Ti segnalo la lettura del Regolamento di quest'area, che prevede - fra le altre cose - l'uso di un titolo significativo (che dia un'idea del problema) e l'indicazione del linguaggio di riferimento.

    Qui ho provveduto io: in futuro, pensaci tu.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    10
    Ti ringrazio per aver corretto il mio errore

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.