Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 02.11.2013
Сообщений: 12
1

Создать процедуру для добавления элемента в заданную позицию списка и вывода списка на экран

02.11.2013, 06:56. Просмотров 879. Ответов 3
Метки нет (Все метки)

Вот у меня есть готовая программа.Объясните мне пожалуйста каждую строчку чтоб я понял.Желательно досконально.Вот задача:
Создать процедуру для добавления элемента в заданную позицию списка и вывода списка на экран.
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
type
    pitem = ^item;
    item = record
        data: integer;
        next: pitem;
    end;
var
    head, p, p1: pitem;
    n, k, l: integer;
procedure add(x,i:integer);
var j: integer;
begin
    if (i > 0) and (i <= n+1) then begin
        new(p);
        p^.data := x;
        if i = 1 then begin
            p^.next := head;
            head := p
        end
        else begin
            p1 := head;
            for j := 2 to i-1 do
                p1 := p1^.next;
            p^.next := p1^.next;
            p1^.next := p;
        end;
        n := n + 1;
    end;
end;
procedure writelist;
begin
    p1 := head;
    writeln('Содержимое списка. ');
    while p1 <> nil do begin
        write(p1^.data,' ');
        p1 := p1^.next;
    end;
    writeln;
end;
begin
    n := 0;
    head := nil;
    for k := 1 to 10 do add(k,k);
    writelist;
    write('Введите значение добавляемого элемента: ');
    readln(k);
    write('Введите позицию добавляемого элемента: ');
    readln(l);
    add(k,l);
    writelist;
readln
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2013, 06:56
Ответы с готовыми решениями:

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1....

Написать функцию добавления значения в определенную позицию списка, заданную пользователем
class.h #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; class LinkedList {...

Напишите процедуру добавления элемента вместо заданного или в середину списка
Напишите пож процедуру добавления элемента вместо заданного или в середину списка и как её...

Разработать процедуру вывода на экран информационную часть всех элементов односвязного списка
Создайте линейный односвязный список. Разработайте процедуру вывода на экран информационную часть...

3
4193 / 1785 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
02.11.2013, 08:06 2
Подсветка синтаксиса придумана не для красоты, а потому что читать впервые увиденный листинг такого размера без подсветки тяжко. Да ещё и без отступов. Затегуй, тогда посмотрим.
0
0 / 0 / 0
Регистрация: 02.11.2013
Сообщений: 12
02.11.2013, 08:43  [ТС] 3
Здесь я ещё добавил про удаление элемента. Вот эту желательно программу объяснить,каждую строчку.
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
type
    pitem = ^item;
    item = record
        data: integer;
        next: pitem;
    end;
 
var
    head, p, p1: pitem;
    n, k, l: integer;
 
procedure add(x,i:integer);
var j: integer;
begin
    if (i > 0) and (i <= n+1) then begin
        new(p);
        p^.data := x;
        if i = 1 then begin
            p^.next := head;
            head := p
        end
        else begin
            p1 := head;
            for j := 2 to i-1 do
                p1 := p1^.next;
            p^.next := p1^.next;
            p1^.next := p;
        end;
        n := n + 1;
    end;
end;
procedure delitem(i:integer);
var k: integer;
begin
    if (i>=1) and (i<=n) and (head<>nil) then
        if i = 1 then begin
            p := head^.next;
            dispose(head);
            head := p;
        end
        else begin
            p := head;
            for k := 2 to i-1 do
                p := p^.next;
            p1 := p^.next;
            p^.next := p1^.next;
            dispose(p1);
        end;
end;
procedure writelist;
begin
    p1 := head;
    writeln('Содержимое списка. ');
    while p1 <> nil do begin
        write(p1^.data,' ');
        p1 := p1^.next;
    end;
    writeln;
end;
begin
    n := 0;
    head := nil;
    for k := 1 to 10 do add(k,k);
    writelist;
    write('Введите значение добавляемого элемента: ');
    readln(k);
    write('Введите позицию добавляемого элемента: ');
    readln(l);
    add(k,l);
    writelist;
    write('Введите номер удаляемого элемента: ');
    readln(k);
    delitem(k);
    writelist;
 
readln
end.
0
Модератор
60253 / 45367 / 31307
Регистрация: 18.05.2008
Сообщений: 108,994
02.11.2013, 09:53 4
Динамические структуры данных (списки, очереди, стеки, деревья)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2013, 09:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вставить элемент списка на заданную позицию
Задача: вставить элемент элемент списка в прологе на заданную позицию. Реализовал вставку на первую...

Вставка нового узла в заданную позицию циклического списка
Разработать численную модель, алгоритм и программу расчета по заданной математической модели. ...

Создать процедуру, которая вставляет новый элемент Е после первого элемента непустого списка L
Пожалуйста помогите очень надо, Создать процедуру, которая вставляет новый элемент Е после первого...

Написать процедуру для вставки элемента в начало списка
Написать процедуру для вставки элемента в начало списка

Написать предикат insertBeforeLast для добавления элемента в позицию предпоследнего элемента
Написать предикат insertBeforeLast для добавления элемента в позицию предпоследнего элемента. Буду...

Перенос элемента списка в другую позицию
Значит это кусок кода. Я в лист кидаю элементы массива. &quot;С&quot; - это минимальный элемент. Находим его...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.