IPB

Здравствуйте, гость ( Вход | Регистрация )

> Вопрос по Однонаправленным спискам, на Pascal
roches
сообщение 12.12.2007, 18:07
Сообщение #1


Новичок
*

Группа: Продвинутые
Сообщений: 5
Регистрация: 12.12.2007
Город: Москва
Учебное заведение: МГУ



Помогите с задачкой, вообщем тема Однонаправленные списки, динамические данные.
вот такое вот задание: Слово, заканчивающееся точкой, вывести в обратном порядке (используя рекурсию).

есть указания, что для организации однонаправленного списка использовать типы ввида:
Type Ukaz=^Zveno;
Zveno=Record
Next:Ukaz;
Info:char;
end;

Помогите пожалйста, с чего начать хотя бы, да и нейпойму куда здесь рекурсию прекрутить то(
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Julia
сообщение 16.12.2007, 12:18
Сообщение #2


Ассистент
****

Группа: Julia
Сообщений: 593
Регистрация: 23.2.2007
Город: Улан-Удэ
Учебное заведение: БГУ
Вы: преподаватель



Просто интересно, какую оценку вы получили на вступительном экзамене по русскому языку?

Пример создания линейного однонаправленного списка без заглавного элемента в прямом порядке следования:


type Ss=^elem;
elem=record
inf:byte;
next:ss
end;
var p,q,l:ss;
{i,E,E1,N:byte;}
begin
write('Vvedi kolichestvo elementov ');
readln(N);
write('Vvedi elementi spiska ');
new(p); {выделяем ячейку памяти для нового элемента и устанавливаем на нее указатель p}
read(p^.inf); {считываем с клавиатуры значение для этого элемента и заносим его в информационную часть}
l:=p; {устанавливаем ссылку l на ту же ячейку памяти, что и p }
for i:=1 to n-1 do {добавление в список оставшихся элементов}
begin
new(q);
read(q^.inf);
l^.next:=q; {связываем последний элемент списка с созданным элементом}
l:=q {переустанавливаем ссылку l на ячейку q}
end;
l^.next:=nil; {ссылочной части последнего элемента присваиваем пустую ссылку nil}
...


Здесь каждый элемент списка содержит информационную часть - число типа byte и ссылочную - ссылку на следующий элемент. Список определяется ссылкой на первый элемент p. Эту ссылку не стоит ни двигать, ни уничтожать, иначе вы потеряете доступ к списку.
Список - структура данных последовательного доступа, т.е. чтобы обратиться к какому-либо элементу списка, отличному от первого, мы должны последовательно пройти по ссылкам всех предыдущих элементов.

Пример: Вставить в список после указанного элемента заданное число.
type Ss=^elem;
elem=record
inf:byte;
next:ss
end;
var p,q,l:ss;
i,E,E1,N:byte;
begin
write('Vvedi kolichestvo elementov ');
readln(N);
write('Vvedi elementi spiska ');
new(p);
read(p^.inf);
l:=p;
for i:=1 to n-1 do
begin
new(q);
read(q^.inf);
l^.next:=q;
l:=q
end;
l^.next:=nil;
write('Vvedi element iz spiska i celoe chislo ');
readln(E,E1);
q:=p;
for i:=1 to N do
if q^.inf=E then
begin
new(l);
l^.inf:=E1;
l^.next:=q^.next;
q^.next:=l;
q:=l^.next
end
else q:=q^.next;
q:=p;
writeln('Poluchennii spisok:');
while q<>nil do
begin
write(q^.inf,' ');
q:=q^.next
end
end.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 26.5.2025, 1:10

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru