Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Illania
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 33

Деревья

17.10.2009, 01:21. Показов 1458. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть такое задание:
во входном файле задана инфиксная форма арифметического выражения , содержащая односимвольные имена (большие латинские буквы) арифметических операндов , символы операций +,-,*,/ без унарных операций. разработать процедуру преобразования инфиксной формы в префиксную, используя деревья.


после многочисленных и продолжительных раздумий удалось наклепать вот это:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
program my10;
type
next=^elem;
elem=record
e1:char;
sled:next
end;
 
tree=^uzel;
uzel=record
elem:char;
rt,lt:tree
end;
 
 
 
var
uk,uks:next;
f:text;
q,p:tree;
 
 
 
Procedure putree(var p,q:tree;var tek:next);
 
begin
if tek<>nil then begin
if q<>nil then
begin
new(p);
p^.lt:=q;
end
else
begin
new (q);
q^.elem:=tek^.e1;
new(p);
p^.lt:=q;
end;
tek:=tek^.sled;
if tek=nil then exit; 
 
new (q);
q^.elem:=tek^.e1;
p:= q;
 
tek:=tek^.sled;
 
if tek=nil then exit;
 
new(q);
 
q^.elem:=tek^.e1;
p^.rt:=q;
 
new(q);
q:=p;
tek:=tek^.sled;
putree(p,q,tek);
end;
end;
 
 
Procedure getree(var ukt1:tree);
begin
if ukt1<>nil then
begin
getree(ukt1^.rt);
write(ukt1^.elem);
getree(ukt1^.lt);
 
end;
end;
 
BEGIN
assign(f,'dan10.inp');
reset(f);
assign(output,'res10.out');
rewrite(output);
 
 
new(uk);
uks:=uk;
read(f,uk^.e1);
uk^.sled:=nil;
 
while not eoln(f) do
begin
 
new(uk^.sled);
uk:=uk^.sled;
read (f,uk^.e1);
uk^.sled:=nil;
 
end;
 
uk:=uks;
 
new(q);
q:=nil;
new(p);
 
 
 
putree(p,q,uk);
getree(q);
 
close(f);
close(output);
END.

,но ,к сожалению, ОНО не работает как надо.
подскажите, пожалуйста, в чем там ошибка и как ее исправить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2009, 01:21
Ответы с готовыми решениями:

Деревья принятия решения (Деревья классификации)
Доброго времени суток! Столкнулся с такой проблемой: требуется написать программу на Pascal для курсовой! Нужно создать дерево приянтия...

Деревья
Вопрос мой таков как из заданого бинарного дерева построить новое из его листьев? Вообще думала и ни к чему не приходила!с чего вообще...

Деревья
Дано упорядоченное дерево глубины N=4 , каждая внутренняя вершина которого имеет K (&lt; 10) непосредственных потомков, которые нумеруются...

2
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
17.10.2009, 20:48
А если в отладчик запихать ?
0
 Аватар для r@di0
103 / 92 / 20
Регистрация: 24.01.2009
Сообщений: 519
17.10.2009, 21:32
Насколько я понимаю, в каждой строке один оператор или переменная? Главное построить двоичное дерево где корнем будет самая первая операция, которая должна выполняться в выражении. И так далее... После этого чтобы записать выражение в новый файл в любой из трех форм достаточно изменить процедуру вывода.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2009, 21:32
Помогаю со студенческими работами здесь

Деревья
Помогите,плиз у меня задание Описать абстракный тип данных дерево и основные функции работы с ним на абстрактном уровне. Реализовать...

деревья
помогите,пожалуйстааа...::gcray2: описать логическую функцию same(t),определяющую,есть ли в дереве t хотя бы 2 одинаковых элемента. ...

Деревья.Модули
Типы данных и подпрограммы для поиска ближайшего (с наибольшей длинной пути относительно корня дерева) предка двух заданных ключами узлов...

Бинарные деревья.
Вопрос жизни и смерти...Есть задача: дано 2 файла в первом 150 атрибутов типа char, во втором 100 атрибутов типа integer.Нужно использовать...

Бинарные деревья
Всем привет. Не хотелось просить помощи, но снова придется.... Есть задание: 1 построить дерево двоичного поиска, вывести его на экран...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru