|
Перегляд.
3. Пошук елемента за вказаним інформаційним полем.
4. Вставка нового елемента після деякого елемента із вказаним значенням.
Вставка елемента перед деяким елементом.
6. Видалення елемента із вказаним значенням.
Формування однонапрямленого списку.
Для реалізації операції в програмі достатньо мати 4 статичні змінні.
А). Стек.
VAR
first, last,p,q:list1;
O:string;
n,i,a,k:integer;
BEGIN
writeln('введіть кількість елементів у списку');
Readln(n);
for i:=1 to n do
Begin
New(p);
writeln('введіть елемент списку');
Readln(a);
p^.inf:=a;
p^.next:=first;
first:=p
End;
Б). Черга.
writeln('введіть кількість елементів у списку');
Readln(n);
first:=nil;
last:=nil;
New(p);
writeln('введіть елемент списку');
Readln(a);
p^.inf:=a;
last:=p;
first:=p;
for i:=2 to n do
Begin
New(p);
writeln('введіть наступний елемент списку');
Readln(a);
p^.inf:=a;
last^.next:=p;
last:=p
End;
Оскільки при створення першого елементу передбачаються операції з вказівником first, а створення решти елементів не потребує використання first, то при побудові списку за правилом черги формування першого елементу відрізняється від формування останніх.
2. Перегляд всього списку. Перегляд списку передбачає рух від голови списку до кінця.
PROCEDURE RESIV (first,p:list1);
BEGIN
p:=first;
while p<>nil do
Begin
write(p^.inf,',');
p:=p^.next
End;
Writeln
END;
3.Пошук за вказаним інформаційним полем.
writeln('введіть шуканий елемент');
Readln(a);
while (p<>nil) do
Begin
if p^.inf=a then
Begin
writeln ('під номером № ‘,k+1);
i:=i+1;
End;
p:=p^.next;
k:=k+1
End;
if k=0 then writeln ('немає')
else writeln ('кількість ',i)
4.Вставка нового елементу після деякого елементу.
p:=first;
writeln ('введіть елемент, після якого потрібно вставити новий');
Readln(k);
while p<>nil do
Begin
if p^.inf=k then
Begin
New(q);
writeln('введіть елемент, який потрібно вставити');
Readln(a);
q^.inf:=a;
q^.next:=p^.next;
p^.next:=q
End;
p:=p^.next
End;
5. Вставка нового елементу перед деяким елементом. Вставка нового елемента перед деяким елементом є складнішим, оскільки список є структурою з послідовним доступом. Вставка перед деяким елементом х – це теж саме, що й вставка після попереднього елемента з значенням п.
writeln ('введіть елемент, перед яким потрібно вставити новий');
Readln(k);
p:=first;
if p=nil then writeln ('список пустий')
Else
if p^.inf=k then {вставка перед першим}
Begin
New(q);
writeln ('введіть елемент, який потрібно вставити');
Readln(a);
q^.inf:=a;
q^.next:=p;
first:=q
End
Else
Begin
while (p^.next<>nil) and (p^.next^.inf<>k) do
p:=p^.next;
if p^.next=nil then writeln ('немає такого елементу ')
Else
Begin
New(q);
writeln('введіть елемент, який потрібно вставити');
Дата добавления: 2015-09-11; просмотров: 76 | Поможем написать вашу работу | Нарушение авторских прав |