Форум программистов, компьютерный форум CyberForum.ru

Подправить программу( конкретно сделать ввод с клавы вместо обычно) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод в файл! http://www.cyberforum.ru/cpp-beginners/thread600788.html
Ребят, помогите разобраться с одной задачей, которая попалась мне во время сегодняшнего экзамена! Вводится n найти сумму n слогаемых s=1+1/2+1/3+...+1/n выводить во внешний файл все частные значения сумм в формате с фиксированной точкой с пятью цифрами в дробной части!! ------------------------------------------------------------------------------------------------------------- по словам...
C++ Считывание 32-х битных слов из файла Здравствуйте. Есть задача посчитать чексумму, как сумму 32-х битных слов, считанных из файла. Подскажите, как считывать эти слова? http://www.cyberforum.ru/cpp-beginners/thread600783.html
C++ Задача на вычисление ряда
помогите с первым заданием
Программа "Студенты" C++
Помогите написать программу, которая будет включать в себя следующие поля: - фамилия и инициалы; - номер группы; - успеваемость (массив из пяти элементов). А также выполняет следующие действия: - ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту; - вывод на дисплей фамилий и номеров групп для всех студентов, имеющих...
C++ Файл, чтение, действительные числа и зачет по ОП http://www.cyberforum.ru/cpp-beginners/thread600765.html
Дан файл f, компоненты которого являются действительными числами. Найти: 1. наибольшее из значений компонент f; 2. наименьшее из значений компонент с четными номерами; 3. наибольшее из значений модулей компонент с нечетными номерами; 4. сумму наибольшего и наименьшего из значений компонент файла f; 5. разность первой и последней компонент файла f. Запрещено пользоваться массивами =( getc...
C++ Не получается дописать программу вывода слов без цифр Добрый вечер сорумчани! Помогите пожалуйста дописать программу. Есть строчка с словами, нужно вывести на экран только те слова, в которых нет цифр. Вот код, который я уже начал писать: #include <iostream> #include <cstring> #include <conio.h> int main() подробнее

Показать сообщение отдельно
malishhh
1 / 1 / 0
Регистрация: 05.05.2012
Сообщений: 29
08.06.2012, 18:05     Подправить программу( конкретно сделать ввод с клавы вместо обычно)
есть готовая программа которая выводит дерево методом вставки в лист ,и затем показывает его обратный обход.
необходимо исправить ,чтобы дерево выводилось с клавиатуры
#include <iostream>
#include <string>
#include <STDLIB.H>
#include <stdio.h>
#include <time.h>
#include <fstream>

using namespace std;
struct node {//создоем узел дерева поле с значением указателями на возможные дочернии узлы
int data;
struct node *link[2];
};

struct tree {
struct node *root;//дерево состояшее из созданых ранее узлов
};

struct node *make_node(int dt){//функция заполняеет созданый узел значением и задает пустые указатели
struct node *nod= new node;
nod->data = dt;
nod->link[0] = NULL;
nod->link[1] = NULL;
return nod;
}

int find (struct tree *tree, int data)//поиск элемента дерева
{
struct node *it = tree->root;//дублируем дерево

while (it != NULL) {//пока не добрались допустого элемента
if (it->data == data)
return 1;//возвращаем 1 при удачном случае
else {
int dir = it->data < data;//в обратном случаее в зависимости от числа перезаписываем в текуший узел левое или правое потдерево
it = it->link [dir];
}
}

return 0;
}

int insert (struct tree *tree, int data)//вставка
{
if (tree->root == NULL){//если нет дерева
tree->root = make_node (data);//создаем первый узел
}
else {//в обратном случае
struct node *it = tree->root;//дублируем дерево
int dir;

for ( ; ; ) {
dir = it->data < data;//сравниваем вставляемое число с значением в текушем узле

if (it->data == data)//если равен с текущим
return 0;//выходим
else if (it->link [dir] == NULL)
break;//если текуший узел не имеет потдерева выходим из бесконечного цыкла

it = it->link [dir];//сделали текущийм узлом подузел
}

it->link [dir] = make_node (data);//присваевеваем текушему узлу указатель на созданый лист
}

return 1;
}

void destroy_r (struct node *root)
{
if (root != NULL) {
destroy_r (root->link [0]);
destroy_r (root->link [1]);
free (root);
}
}

void destroy (struct tree *tree)//удаление дерева
{destroy_r (tree->root);
}


void postorder_r (struct node *root)
{
if (root != NULL) {
postorder_r (root->link [0]);
postorder_r (root->link [1]);
printf ("%d\ ", root->data);
}
}
void postorder (struct tree *tree)
{
postorder_r (tree->root);
}

void structure_r (struct node *root, int level)
{
int i;

if (root == NULL) {
for (i = 0; i < level; i++)
putchar ('\t');
puts ("");
}
else {
structure_r (root->link [1], level + 1);

for (i = 0; i < level; i++)
putchar ('\t');
printf ("%d\n", root->data);

structure_r (root->link [0], level + 1);
}
}

void structure (struct tree *tree)
{
structure_r (tree->root, 0);
}

void main(){


tree derevo;
derevo.root=make_node(1);//создаем вершину

insert(&derevo,10);//добавляем сколько нужно элеиентов
insert(&derevo,0);//сделаешь это в цикле и с вводом с клавы
insert(&derevo,3);
insert(&derevo,12);
insert(&derevo,5);

structure(&derevo);//показывает структуру дерева(боком)

postorder(&derevo);//обратный обход дерева
destroy(&derevo);
cin.get();

}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru