Добавил:
Yanus
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab - moroz / Lab7_1 / Lab7_1
.cpp#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
typedef struct list
{
int v;
struct list *l;
struct list *r;
}tree;
extern AddInTree(tree *t1,char s1,char s2);
extern tree *CreateTree();
extern int fReadNumber(FILE *ftemp);
tree *CreateTree()
{
tree *t[64];
int i=0,j=1,k=1,buf=0,w[64]={-1};
FILE *fnum;
fnum=fopen("nambers.txt","r");
if (fnum==NULL) exit(-1);
while (1)
{
int temp=0;
temp=fReadNumber(fnum);
if (temp==EOF) break;
w[i]=temp;
i++;
}
fclose(fnum);
t[0]=new tree;
t[0]->l=NULL;
t[0]->r=NULL;
t[0]->v=w[0];
while (1)
{
AddInTree(t[i],w[k++],w[k++]);
t[i]->l=t[j++];
t[i]->r=t[j++];
i++;
if (w[i]==EOF) break;
}
return t[0];
}
AddInTree(tree *t1,char s1,char s2)
{
tree *t2;
t2=new tree;
t2->v=s2;
t2->l=NULL;
t2->r=NULL;
t1->l=t2;
t2=new tree;
t2->v=s1;
t2->l=NULL;
t2->r=NULL;
t1->r=t2;
}
hod (tree *t)
{
FILE *F2;
F2=fopen("file2.txt","w");
if (F2==NULL) exit(0);
t->v=abs(t->v);
fprintf(F2,"%d",t->v);
if ((t->l=NULL)||(t->r=NULL)) return -1;
hod(t->l);
hod(t->r);
}
int fReadNumber(FILE *ftemp)
{
int value;
while (1)
{
value=getc(ftemp);
if (value==EOF) return value;
if (((value>=48) && (value<=57)) || (value==45))
{
ungetc(value,ftemp);
fscanf(ftemp,"%d",&value);
return value;
}
}
}
void main()
{
tree *p;
p=CreateTree();
hod(p);
getchar();
}