![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.04.2009
Сообщений: 17
|
![]()
помогите пожалуйста написать рекурсивную программу, которая бы определяла кол-во вершин дерева, содержащих слова, которые являются палиндромами(исходные данные должны храниться в текстовом файле). Заранее всем благодарна
![]() |
![]() |
![]() |
![]() |
#2 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
![]()
А как это дерево в файле хранится? (Давно такой вопрос был)
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.04.2009
Сообщений: 17
|
![]()
я не знаю как оно должно хранится. В задании написано,что дан текстовый файл. И всё.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 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. Помогите пожалуйста написать вывод количества палиндромов.и ещё как переделать ввод, чтобы считывание было из файла. Пожалуйста ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
бинарные деревья | 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 |