Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab - moroz / Lab7_1 / Lab7_1

.cpp
Скачиваний:
6
Добавлен:
15.06.2014
Размер:
1.49 Кб
Скачать
#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();
}
Соседние файлы в папке Lab7_1
  • #
    15.06.20141.49 Кб6Lab7_1.cpp
  • #
    15.06.201427.65 Кб6Lab7_1.ncb
  • #
    15.06.2014901 б6Lab7_1.sln
  • #
    15.06.20149.73 Кб7Lab7_1.suo
  • #
    15.06.20143.38 Кб6Lab7_1.vcproj
  • #
    15.06.201416 б7numbers.txt