Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 17:51   #1
Ира08
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 17
По умолчанию Бинарные деревья в Delphi

помогите пожалуйста написать рекурсивную программу, которая бы определяла кол-во вершин дерева, содержащих слова, которые являются палиндромами(исходные данные должны храниться в текстовом файле). Заранее всем благодарна
Ира08 вне форума Ответить с цитированием
Старый 03.04.2009, 19:29   #2
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

А как это дерево в файле хранится? (Давно такой вопрос был)
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 04.04.2009, 09:30   #3
Ира08
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 17
По умолчанию

я не знаю как оно должно хранится. В задании написано,что дан текстовый файл. И всё.
Ира08 вне форума Ответить с цитированием
Старый 04.04.2009, 17:20   #4
Ира08
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 17
По умолчанию

вот часть моей программы:

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
TreeView1: TTreeView;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type
P_Node = ^T_Node;
T_Node = record
info: string;
key: integer;
left, right: P_Node;
end;
procedure InsertInTree(var t: P_Node; k: Integer);

var
Form1: TForm1;
root: P_Node;

implementation

{$R *.dfm}


procedure InsertInTree(var t: P_Node; k: Integer);
begin
if t = nil
then begin
new(t);
t^.left := nil;
t^.right := nil;
t^.key := k;
t^.info:=form1.Edit2.Text;
end

else if k <= t^.key
then InsertInTree(t^.left, k)
else InsertInTree(t^.right, k);
end;

procedure ShowTree(t: P_Node; p: TTreeNode);
begin
if t <> nil then
with Form1.TreeView1 do
begin
p := Items.AddChild(p, IntToStr (t^.key) + ':'+ t^.info);
ShowTree(t^.left, p);
ShowTree(t^.right, p)
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
InsertInTree(root, strtoint(edit1.Text));
end;


procedure TForm1.Button2Click(Sender: TObject); TreeView1
var b: boolean;
begin
TreeView1.Items.Clear;
ShowTree(root, NIL);
TreeView1.FullExpand;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;


function IsPalindrom(AWord: string): Boolean;
var
I: Integer;
begin
for I := 1 to Length(AWord) div 2 do
if AWord[i] <> AWord[Length(AWord) - I + 1] then
begin
IsPalindrom := False;
// Exit;
end;
IsPalindrom := True;
end;


function CalcPalindromCount(ATree: P_Node): Integer;
var
N: Integer;
begin
if ATree = nil then
begin
CalcPalindromCount := 0;
Exit;
end;
if IsPalindrom(ATree^.Info) then
N := ATree^.key
else
N := 0;
CalcPalindromCount := N + CalcPalindromCount(ATree^.Left)
+ CalcPalindromCount(ATree^.Right);
end;

procedure TForm1.Button4Click(Sender: TObject);
var x:integer;
begin

???????????????????????????????????
end;

end.


Помогите пожалуйста написать вывод количества палиндромов.и ещё как переделать ввод, чтобы считывание было из файла. Пожалуйста
Ира08 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бинарные деревья gilex Паскаль, Turbo Pascal, PascalABC.NET 7 23.06.2013 16:55
Бинарные деревья Влдислаав3911 Помощь студентам 2 21.05.2008 23:39
Бинарные деревья в С++ Go6a Помощь студентам 1 24.04.2008 16:31
бинарные деревья. ribka Помощь студентам 2 30.11.2007 18:13