Тема: Допоможіть... У програмуванні не довго
Суть в тому, що мені потрібно згенерувати бінарне дерево... (дані зчитати з файлу)
Багато чого прочитав але так і нічого не зрозумів як це можливо реалізувати...
P.S. Забув реалізація тільки на мові С.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Допоможіть... У програмуванні не довго
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Суть в тому, що мені потрібно згенерувати бінарне дерево... (дані зчитати з файлу)
Багато чого прочитав але так і нічого не зрозумів як це можливо реалізувати...
P.S. Забув реалізація тільки на мові С.
P.S. Забув реалізація тільки на мові С.
Багато прочитали, а правила форуму забули?
Розумієте я не знаю як почати код з тим бінарним деревом якби мене б хтось підштовхнув ...
Пишете структуру, що містить дані і два посилання на такі самі структури.
Ось завдання :
Згенерувати масив із 100 випадкових чисел і записати його у файл.
Згенерувати для нього бінарне дерево парних і непарних чисел.
в мене не виходить з тим бінарним деревом!!
Ось код :
#include "stdafx.h"
#include "stdio.h"
#include<iostream>
#include "stdlib.h"
#include "time.h"
using namespace std;
struct treeNode
{
struct treeNode *leftPtr;
int data;
struct treeNode *rightPtr;
};
typedef struct treeNode TREENODE;
typedef TREENODE *TREENODEPTR;
int main(array<System::String ^> ^args)
{
FILE *file;
if ((file = fopen("GGG.txt","w")) == NULL)
{
printf("The file can not be opened\n");
exit(0);
}
else
{
srand((unsigned int)time(NULL));
int *a = new int[100]();
for ( unsigned int i = 0; i < 100; i++)
{
a[i] = rand();
fprintf (file, " %d\n\n" , a[i]);
//----------------------------------------------------------------------------------------------
fscanf(file, "%d", a[i]);
//void insertNode(TREENODEPTR *,int);
void print_Tree(Tree * p,int level)
//-------------------------------------------------------------------------------------------
delete [] a;
}
fclose(file);
system("PAUSE");
return 0;
}
/*
void insertNode(TREENODEPTR *treePtr, int value)
{
if (*treePtr==NULL)
{
// *treePtr = malloc (sizeof(TREENODE));
if (*treePtr != NULL)
{
(*treePtr) ->data = value;
(*treePtr) ->leftPtr = NULL;
(*treePtr) ->rightPtr = NULL;
}
else
printf("%d NO NO NO!!!\n", value);
}
else
if (value < (*treePtr) -> data)
insertNode(&((*treePtr) -> leftPtr), value);
else
if (value > (*treePtr) -> data)
insertNode(&((*treePtr) -> rightPtr), value);
else
printf("dup");
}
*/
void print_Tree(Tree * p,int level)
{
FILE *file = fopen("GGG.txt","r");
if(p)
{
print_Tree(p->left,level + 1);
for(int i = 0;i< level;i++) cout<<" ";
cout << p->key << endl;
print_Tree(p->right,level + 1);
}
}
По-перше, по-людськи напишіть, що значить "не виходить". Яка помилка, в якому рядку, що виводить, що не виводить, а що ви очікували і т.д.
По-друге, поясніть, що значить "бінарне дерево парних і непарних чисел". Наприклад, якщо в нас є числа {1 2 3 4} - яке з них буде дерево? Що в корені, які листочки?
По-третє, не мішайте за можливістю C та C++. Або printf/scanf, або оператори >> та <<, але не одночасно.
По-четверте, я зовсім не розумію, нащо вам генерувати випадкові числа, які ви одразу затираєте прочитаними з файла.
дійсно якщо ви "недавно в програмуванні" не мішайте можливості С, C++, C++/CLI
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися