0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 49
1

Динамические структуры данных (список)

03.11.2014, 02:27. Показов 2667. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи,вот задание :
Опишите и постройте с помощью двумерного массива Sps линейный однонаправленный список из семи целых чисел и сделайте этот список пустым. После этого добавьте в список шесть элементов 1,3,5,7,9,11, затем найдите указатель на элемент 9 и удалите этот элемент. В конце работы со списком вставьте после элемента со значением 11 элемент со значением 13, предварительно отыскав указатель на элемент со значением 11, а элемент со значением 15 вставьте после элемента со значением 3. Результаты как промежуточных, так и конечных результатов отобразить на экране.

Программа есть,но она не корректно работает,в том плане,что элемент добавляется скажем не после 11 элемента, а после 3 и т.д. т.е. не туда,где должен быть по заданию,пытаюсь исправить уже 3-ий час, но не знаю, в чём тут проблема,вот сам код:
Delphi
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
78
79
Type Spis=array[1..2,0..9] of integer;
Var Assm, Afe : integer;    { Assm указывает индекс/адрес первого элемента в списке свободных мест}
{ Afe – индекс (адрес) первого элемента в списке. }
El,i,pap,j:integer;
Sps:Spis;
Procedure Nspis(Var Sps:Spis); {процедура оформления пустого списка}
var i:integer;
Begin
  for i:=1 to 8 do
    Sps[2,i]:=i+1;
    Sps[2,9]:=0;
    Assm:=1;
    Afe:=0;
end;
Procedure Addsp(Var Sps:Spis); {процедура добавления элемента в список}
Var   Asmn:integer;
Begin
  Asmn:=Sps[2,Assm];
  Sps[1,Assm]:=el;
  Sps[2,Assm]:=Afe;
  Afe:=Assm;
  Assm:=Asmn
end;
Procedure DelSp(Pap,j:integer; Var Sps:Spis); {процедура удаления элемента из списка}
Begin
  Sps[2,Pap]:=Sps[2,j];
  Sps[2,j]:=Assm;
  Assm:=j
end;
Procedure UstSp(j:integer; Var Sps:Spis); {процедура вставки элемента в список}
Var  Asmn:integer;
Begin
  Asmn:=Sps[2,Assm];
  Sps[2,Assm]:=Sps[2,j];
  Sps[2,j]:=Assm;
  Sps[1,Assm]:=El;
  Assm:=Asmn;
end;
Procedure PoshSp(Var Sps:Spis; el:integer; Var Pap,j:integer); {процедура поиска указателя (адреса) на элемент списка}
Begin
  j:=Afe;
  Pap:=0;
  While (Sps[1,j]<>el) and (j<>0) do
    Begin
      Pap:=j;
      j:=Sps[2,j];
    end;
  if j=0 then Writeln('Элемент не найден')
end;
BEGIN {Основная программа}
  Nspis(Sps); {построение пустого списка}
  for i:=1 to 6 do
    begin
      readln(el);
       Addsp(Sps) {добавление элементов  в список по одному}
    end;
   writeln('promejutosnie rezultati');
  el:=9; {найденный указатель j,  pap – предыдущий указатель}
  PoshSp(Sps,el,pap,j); {поиск указателя на элемент со значением 9}
  Delsp(pap,j,sps); {удаление элемента с указателем j}
  writeln;
  for i:=1 to 6 do
  write(Sps[1,i],' ');
  el:=11;
  PoshSp(Sps,el,pap,j); {поиск указателя на элемент со значением 11}
  el:=13;
  Ustsp(j,Sps); {вставка элемента со значением 11 после элемента со значением 13}
  writeln;
  for i:=1 to 6 do
  write(Sps[1,i],' ');
  writeln;
  el:=3;
  PoshSp(Sps,el,pap,j); {поиск указателя на элемент со значением 3}
  el:=15;
  Ustsp(j,Sps); {вставка элемента со значением 15 после элемента со значением 3}
  writeln('konchiy rezultat');
  for i:=1 to 7 do
  write(Sps[1,i],' ');
END.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2014, 02:27
Ответы с готовыми решениями:

Динамические структуры данных. Организация данных в списковые структуры
Написать программу, формирующую два списка, заполняя их числами из файлов. Объединить оба списка в...

Динамические структуры данных
Никогда д этого не приходилось работать с динамическими типами данных, помогите решить такую вот...

Динамические структуры данных
Нужна помощь. Со списками дела плохо, сколько читал, смотрел, никак не идет. :wall: Нужно с...

Динамические структуры данных: добавление данных в конец
Нужно реализовать такую структуру данных (динамическую естественно ) которая имеет такие...

2
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,248
03.11.2014, 02:46 2
Цитата Сообщение от rom4ikps Посмотреть сообщение
Программа есть,но она не корректно работает
Не мудрено. Ведь наверняка она подобрана на помойке.
Цитата Сообщение от rom4ikps Посмотреть сообщение
пытаюсь исправить уже 3-ий час, но не знаю, в чём тут проблема
А написать программу самому не позволяет уровень знаний? Так и переделать найденное на помойке тот же самый уровень не позволяет.
Так и что же ты хочешь, юный отрок, войдя на сей форум?
0
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 49
03.11.2014, 11:57  [ТС] 3
Цитата Сообщение от northener Посмотреть сообщение
А написать программу самому не позволяет уровень знаний? Так и переделать найденное на помойке тот же самый уровень не позволяет.
Так и что же ты хочешь, юный отрок, войдя на сей форум?
К сожалению это так,уровень знаний пока невелик,чтобы переделать эту программу,посему я обратился на этот форум с надеждой,что мне помогут, а я в свою очередь не только порадуюсь и скажу спасибо,за сделанную программу,но и буду стараться разобраться в ней, чтобы понять как надо было делать.
0
03.11.2014, 11:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2014, 11:57
Помогаю со студенческими работами здесь

Динамические структуры данных. Списки
С клавиатуры вводятся фамилии участников некоторых соревнований. Составить список участников,...

Динамические структуры данных. Списки
Нужна помощь с задачей по спискам. Как создать список из последовательности символов введенных с...

Динамические структуры данных: списки, стеки, очереди
Дан текстовый файл с изображением целых чисел, которые необходимо переписать в стек St1. Используя...

Сделать добавление через динамические структуры данных
как сделать добавление через динамические структуры данных?? пример. begin...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru