Поиск по сайту:


Смотри также:

Лабораторные # 1,2,3,4 - Исходник.

Шейкер сортировка - Исходник.

Работа с массивами символов: Оставить в строке фрагменты, симметричные центрального символа, длиной более 5 символов (например, «dcbabcd»), остальные символы заменить на пробелы - Исходник.

Пример применения составных файлов, работа с IStorage, IStream - Исходник.

Все новинки...

Исходник «Деревья»

Когда сдавалась работа2009
Где сдавалась работаНГТУ
Оценка5
Имя автораСергей
Файл: 3.97 КБ
Поделиться:
Задание: Вершина дерева содержит указатель на строку. Строки в дереве не упорядочены. Функция включает вершину в дерево с новой строкой в ближайшее свободное к корню дерева место. (То есть дерево должно иметь ветви, отличающиеся не более чем на 1).
// Вариант: 1 (задание №1)(BK55)
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <conio.h>

/* Элемент структуры дерева. */
struct tree
{
	char *str;	/* Указатель на строку. */
	tree *left;	/* Указатель на левый потомок дерева */
   tree *right;	/* Указатель на правый потомок дерева. */
};

/* Прототипы функций и глобальные переменные. */
struct tree *min_usel = NULL;	/* Указатель на ближайший к корню свободный элемент дерева. */
int min1 = 100;	/* Минимальная высота дерева. (100 произвольное число). */
int max1 = 0;	/* Максимальная высота дерева. */

void About(void);
void printsk (char* format,...);
int menu_select(void);				/* Выбор пункта меню. */
void enter(struct tree *usel);	/* Ввод строки. */
void show(struct tree *usel);		/* Вывод строк на экран. */
void load(struct tree *usel);		/* Загрузка строк из файла. */
void insert(char *strk, struct tree *usel);		/* Вставка новой строки. */
void balans(struct tree *usel);		/* Контроль сбалансированности дерева. */
struct tree *first(void);			/* Создание корня дерева. */
char *del_n(char *string);			/* Удаляет из переданной строки символ перевода/ */
void search_min(struct tree *usel, int current);	/* Ищет минимальную высоту дерева. */
void search_max(struct tree *cpusel, int current);	/* Ищет максимальную высоту дерева. */

int main ()
{
	About ();		/* Вывод информации о программе и авторе. */

   struct tree *pbegin = first();
   /* Объявление используемых в программе локальных переменных. */
   char choice;
   /* Меню. */
	for(;;) {
    choice = menu_select();
    switch(choice) {
      case 1: enter(pbegin);
        break;
      case 2: show(pbegin);
        break;
      case 3: load(pbegin);
        break;
      case 4: balans(pbegin);
        break;
      case 5: exit(0);
    }
  }

   getchar();	/* Заглушка. */
	return 0;
   /* Конец программы. */
}

/*-----------------------------------------------------------------------*/
/* Выбор пункта меню. */
int menu_select(void)
{
	char s[50];
	int c;
	printsk("\n1. Ввод строки\n");
	printsk("2. Вывод всех строк на экран\n");
	printsk("3. Загрузка строк из файла\n");
	printsk("4. Контроль сбалансированности\n");
	printsk("5. Выход\n");
do {
    printsk("\nВведите номер нужного пункта: ");
    scanf("%s",&s);
    c = atoi(s);
  } while(c<0 || c>5);
  return c;
}

/*-----------------------------------------------------------------------*/
/* Ввод строки */
void enter (struct tree *usel)

 

На данной странице представлены авторские программы. 
Эти лабораторные работы сдавались Новосибирского государственного технического университета по специальности 220400 "Программное обеспечение вычислительной техники и автоматизированных систем". 
Все работы написаны на языка 'Си'. Все программы проверялись на компиляторе Borland C++ 5.02