Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по лабораторным работам вариант 17.doc
Скачиваний:
6
Добавлен:
20.05.2014
Размер:
49.6 Кб
Скачать

Void main()

{

FILE *f;

int i,j;

char Xcolor[20];

chair *zap1;

clrscr();

zap1=stackcat();

putcat(zap1);

printf("Enter color of chair to delete :");

scanf("%s",Xcolor);

udalchair(zap1,Xcolor);

printf("See result in result.c");

puts(" PRESS ENTER PLEASE");

getch();

}

/*Лабораторная работа #6 (Рекурсия)

Написать программу, включающую рекурсивную функцию для вычисления:

НОД двух неотрицательных целых чисел m и n с использованием второго

алгоритма Евклида:

(

| n при n=m,

|

| НОД (m mod n,n) при m>n,

|

НОД(m,n)= { НОД (m, n mod m) при n>m,

|

| n при n<>0, m=0,

|

| m при n=0, m<>0

(

*/

#include<stdio.h>

int nod(int m,int n)

{

if(n != 0 && m == 0)

return(n);

if(n == 0 && m != 0)

return(m);

if(m>n)

return nod(m % n,n);

if(m<n)

return nod(m,n % m);

if(m == n)

return(n);

}

Void main()

{

int m,n;

clrscr();

do

{

printf("Введите числа m>0 и n>0: ");

scanf("%d %d",&m,&n);

}

while(m<=0&&n<=0);

printf("NOD(%d %d) = %d",m,n,nod(m,n));

getch();

}

/*Лабораторня работа #6(2)

Написать программу, которая создает бинарное дерево, состоящее из целых

чисел, вводимых с клавиатуры, выполняет преобразования в соответствии

с номером задания и печатает все числа бинарного дерева

(исходного и преобразованного)

Находит максимальное число в бинарном дереве

*/

#include <stdio.h>

#include<stdlib.h>

#include <conio.h>

int MAX=-32768;

struct bin

{

int n;

struct bin *lson,*rson;

};

typedef struct bin bi;

void SearchMax(bi *der)

{

if (der==NULL) return;

if (der->n>MAX) MAX=der->n;

SearchMax(der->rson);

}

bi *root,*pred,*cur;

bi *create(int i)

{

bi *c;

c=malloc(sizeof(bi));

c->n=i;

c->lson=NULL;

c->rson=NULL;

return(c);

}

int fl=0;

void output(bi *cur,int x,int y,int d)

{

gotoxy(x,y);

printf("%d",cur->n);

if (cur->lson) output(cur->lson,x-d,y+2,d/2);

if (cur->rson) output(cur->rson,x+d,y+2,d/2);

}

void create1(bi *cur,int i)

{

if (i<cur->n)

if (cur->lson) create1(cur->lson,i);

else cur->lson=create(i); else

if (cur->rson) create1(cur->rson,i);

else cur->rson=create(i);

}

Void main()

{

int i;

clrscr();

/* СОЗДАНИЕ ДЕРЕВА */

root=NULL;

puts("Введите числа: \n ");

scanf("%d",&i);

while (i>=0)

{

if (!root) root=create(i); else

{

cur=root;

create1(cur,i);

}

scanf("%d",&i);

}

if (root)

{ clrscr();

puts("Числа в бинарном дереве : ");

output(root,40,4,10);

getch();

SearchMax(root);

printf("\n\n\n\nМаксимум равен: %d",MAX);

} else puts("Бинарное дерево пустое.");

getch();getch();

}