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

lab - moroz / Lab7-2 / Lab7-2

.cpp
Скачиваний:
8
Добавлен:
15.06.2014
Размер:
1.94 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>

typedef struct TREE
{
	int v;
	struct TREE *l;
	struct TREE *r;
} tree;

extern tree *CreateTree();
extern CreateNodes(tree *curnode, int num1, int num2);
extern int FindNum(tree *tr, int* num);
extern int fReadNumber(FILE *ftemp);

int sign=0;

tree *CreateTree()
{
	tree *node[64];
	int j=0,arrnum[64]={0},n=0,k=1;
	FILE *fnum;
	fnum=fopen("numbers.txt","r");
	if (fnum==NULL) exit(-1);
	while (1)
	{
		int temp=0;
		temp=fReadNumber(fnum);
		if (temp==EOF) break;
		arrnum[n]=temp;
		n++;
	}
	node[0]=new tree;
	node[0]->value=arrnum[0];
	for (int(i)=1;i<n;i++)
	{
		CreateNodes(node[j],arrnum[k++],arrnum[k++]);
		node[i++]=node[j]->left;
		node[i]=node[j]->right;
		j++;
	}
	fclose(fnum);
	return node[0];
}

CreateNodes(tree *curnode, int num1, int num2)
{
	tree *newnode;
	newnode=new tree;
	newnode->value=num2;
	newnode->left=NULL;
	newnode->right=NULL;
	curnode->left=newnode;
	newnode=new tree;
	newnode->value=num1;
	newnode->left=NULL;
	newnode->right=NULL;
	curnode->right=newnode;
}

int FindNum(tree *tr, int* num)
{
	if (tr->value==*num) sign=1;
	if ((tr->left==NULL) || (tr->right==NULL)) return sign;
	FindNum(tr->left,num);
	FindNum(tr->right,num);
}

int fReadNumber(FILE *ftemp)
{
	int value;
	while (1)
	{
		value=getc(ftemp);
		if (value==EOF) return value;
		if ((value>=48) && (value<=57))
		{
			ungetc(value,ftemp);
			fscanf(ftemp,"%d",&value);
			return value;
		}
	}
}

void main()
{
	tree *t;
	FILE *fd1;
	int arrnumd1[64]={0},i=0;
	fd1=fopen("d1.txt","r");
	if (fd1==NULL) exit(-1);
	while (1)
	{
		int temp=0;
		temp=fReadNumber(fd1);
		if (temp==EOF) break;
		arrnumd1[i]=temp;
		i++;
	}
	fclose(fd1);
	t=new tree;
	t=CreateTree();
	for (int(j)=0;j<i;j++)
	{
		int res=0;
		sign=0;
		res=FindNum(t,&arrnumd1[j]);
		if (res==1) printf("%d\n",arrnumd1[j]);
	}
}
Соседние файлы в папке Lab7-2
  • #
    15.06.201415 б8d1.txt
  • #
    15.06.20141.94 Кб8Lab7-2.cpp
  • #
    15.06.201427.65 Кб9Lab7-2.ncb
  • #
    15.06.2014901 б7Lab7-2.sln
  • #
    15.06.20148.7 Кб7Lab7-2.suo
  • #
    15.06.20143.38 Кб7Lab7-2.vcproj
  • #
    15.06.201433 б8numbers.txt