Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // array+tree.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
- // Организовать ввод информации в массив, организованный по принципу бинарногодерева(для k-огоэлемента: если левое поддерево,
- //то сделать 2k, есli правое, то 2k+1).
- #include "pch.h"
- #include <iostream>
- int get_int()
- {
- int i, n;
- do
- {
- i = fscanf_s(stdin, "%d", &n);
- if (!i)
- {
- rewind(stdin);
- continue;
- }
- } while (!i);
- return n;
- }
- void array_output(int* array, int size)
- {
- int i = 0;
- for (i = 0; i < size; i++)
- {
- fprintf(stdout, "%3d", array[i]);
- }
- fprintf(stdout, "\n");
- }
- int* array_fill(int* array, int &lenght)
- {
- int i, j, k;
- while (1)
- {
- j = get_int();
- if (j == 999)
- {
- break;
- }
- array = (int*)realloc(array, sizeof(int) * (++lenght));
- if (lenght == 1)
- {
- array[0] = j;
- }
- else
- {
- i = 0;
- while (i < lenght - 1 && array[i] <= j)
- {
- i++; //array[i] > j || lenght
- }
- if (lenght - 1 == i)
- {
- array[i] = j;
- }
- else
- {
- while (i < lenght)
- {
- k = array[i];
- array[i++] = j;
- j = k;
- }
- }
- }
- }
- return array;
- }
- int main()
- {
- int* array = NULL;
- int size = 0;
- array = array_fill(array, size);
- array_output(array, size);
- free(array);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment