Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
аkо
0 / 0 / 0
Регистрация: 24.05.2009
Сообщений: 5
#1

запись структуры в бинарное дерево - C++

27.05.2009, 23:11. Просмотров 433. Ответов 0
Метки нет (Все метки)

Вот мой код, но он почему-то не строит дерево, причина скорее всего в этом куске функции:
if (strcmp(word, a->name)==0)
{
a->pnumb++;
strncpy(a->alboms[a->pnumb], &s[20],20);
(a->alboms[a->pnumb])[19]='\0';
a->god_vip[a->pnumb]=atoi(&s[40]);
}
но где именно не могу понять, помогите, пожалуйста!!!

#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct node
{
char name[10];
int god_vip[4];
char alboms[10][20];
int pnumb;
char janr[10];
node *left;
node *right;
};

node *crnode(char s[75])
{
node *newnode=new (node);
newnode->pnumb=1;
strncpy(newnode->name ,&s[0],10);
newnode->name[10]='\0';
strncpy(newnode->janr,&s[10],10);
newnode->janr[10]='\0';
strncpy(newnode->alboms[1], &s[20],20);
newnode->alboms[1][19]='\0';
newnode->god_vip[newnode->pnumb]=atoi(&s[40]);
newnode->left=NULL;
newnode->right=NULL;
return (newnode);
}
node *add_tree(node *a,char s[75])
{
char word[10];
if (a==NULL)
{
a=crnode(s);
}
else
{
strncpy (word,s,10);
word[9]='\0';
if (strcmp(word,a->name)<0)
{
if (a->left==NULL)
{
a->left=crnode(s);
}else{
add_tree(a->left,s);
}
}
if (strcmp(word, a->name)>0)
{
if (a->right==NULL)
{
a->right=crnode(s);
}else{
add_tree(a->right,s);
}
}
if (strcmp(word, a->name)==0)
{
a->pnumb++;
strncpy(a->alboms[a->pnumb], &s[20],20);
(a->alboms[a->pnumb])[19]='\0';
a->god_vip[a->pnumb]=atoi(&s[40]);
}
}
return(a);

}
void PrintNode(node *a)
{
int i;
if (a!=NULL)
{
cout << "NUMBER:" << a->number << endl ;
cout << "FAMILIJAAA:" << a->soname << endl;
for (i=1;i<=a->pnumb;i++)
{
cout << "\n" << a->narush[i] << "- " << a->shtraf[i] <<"\n__________________________\n";
}
cout << endl;
};
}



int main()
{
node *a=NULL, *b=NULL;
FILE *input, *output;
if((input=fopen("D:\\input.txt","r"))==NULL)
{cout<<"Oshibka faila"<<endl; return(1);}
if((output=fopen("D:\\output.txt","w"))==NULL)
{cout<<"Oshibka faila"<<endl; return(1);}
const dl=75;
char s[dl];
while(fgets(s,dl,input))
{
a=add_tree(a,s);
}
PrintNode(a);
fclose(input);
return 0;
}

заранее спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2009, 23:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос запись структуры в бинарное дерево (C++):

Запись структуры в бинарное дерево - C++
Помогите записать структуру в дерево? Нужно записать структуру в дерево. КИНЬТЕ ПРИМЕР ПОЖАЛУЙСТА Добавлено через 2 часа 19 минут ???

Структуры. Бинарное дерево. - C++
Поставлена такая задача. Является ли двоичное дерево линейным списком вершин? Реализовать надо на динамических структурах. PS....

Сбалансированное бинарное дерево. Структуры даннных - C++
Доброе время суток,уважаемые посетители форума! Задали на структурах данных создать сбалансированное бин. дерево,после чего построить из...

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Динамические структуры данных (построить бинарное дерево) - C++
Доброго времени суток,нужна помощь - &quot;построить произвольное бинарное дерево та найти в нем элемент с заданным значением. Определить...

Запись слова в бинарное дерево - C++
Можно ли записать слово, либо строку в бинарное дерево? Просто у меня стоит задание по лабораторной: записать структуру Patient, которая...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2009, 23:11
Привет! Вот еще темы с ответами:

Бинарное дерево, запись пациента - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstring&gt; #include &lt;windows.h&gt; using namespace std; struct element { ...

Запись одинаковых элементов в бинарное дерево - C++
помогите исправить ошибку в программе при записи двувух или более студентов на одну и туже первую букву или символ первого она...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

бинарное дерево - C++
С помощю бинарного дерева нужна сделать программу,,любую (главное что на экран выводило)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru