Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2013, 13:07   #1
Loner
Пользователь
 
Регистрация: 13.05.2013
Сообщений: 10
Радость Связывание 2-ух динамических списков(указатели,pascal)

Суть проблемы в том ,что нужно свзять 2 динамических списка

Код:
dopz=record;
  den: string[2]  ;
  mes: string[2] ;
  god :string[4];
  company:string[20];
  srok:string[20];
  end;
  dopinf=^inf;
  inf=record
  dataz:dopz
  end;

и


Код:
apt = record;
        numb: integer;
        name: string[20];
        proiz: string[20];
        str:string[20];
        kol: string [20];
        cena: string[20];

    end;

    AP = ^apteka;
    apteka = record
         data :apt;
         ukaz:dopinf;
         next: ap;
         prev: ap;
    end;

мне нужно чтобы второй список содержал указатель на 1 список.

Следовательно при работе с ним, зная указатель на n запись 2 списка я мог легко выйти на n запись 1 списка.


Это вообще можно реализовать?

В общем из моих набросок..работает...но как обратится к 1-ому списку через 2?
Loner вне форума Ответить с цитированием
Старый 13.05.2013, 13:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я не хочу Вас расстраивать, но у Вас УЖЕ есть связь...
Цитата:
Код:
    apteka = record
         data :apt;
         ukaz:dopinf;
         next: ap;
         prev: ap;
    end;
Вот только 1-й список - это НЕ СПИСОК, это указатель на ОДИН элемент (с дополнительной информацией, судя по имени)...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2013, 13:49   #3
Loner
Пользователь
 
Регистрация: 13.05.2013
Сообщений: 10
По умолчанию

Походу я совсем запутался.

Попробуем ещё раз.


У меня есть 2 списка
В 1 списке хранится дополнительная информация о записи из 2 списка.


Зная указатель на n запись 2 списка..я хочу вывести на экран дополнительную информацию взятую из 1 списка.

Если я опять лажанул..

можете поправить указатели (код) так чтобы получить наглядный пример?(

вот что я хочу получить..


Последний раз редактировалось Loner; 13.05.2013 в 14:03.
Loner вне форума Ответить с цитированием
Старый 13.05.2013, 14:03   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

возникает резонный вопрос: зачем вам два списка при отношении один-к-одному? Не проще ли сделать один список такого рода:

Код:
    AP = ^apteka;
    apteka = record
         data: apt;
         ukaz: inf;
         next: ap;
         prev: ap;
    end;
з.ы. непонятно только зачем столько вложенности в записях сделано. тип inf вообще лишний.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 13.05.2013, 14:08   #5
Loner
Пользователь
 
Регистрация: 13.05.2013
Сообщений: 10
По умолчанию

у меня выделяется(new трялляля) память под хранение данных для 1 списка.
Loner вне форума Ответить с цитированием
Старый 13.05.2013, 14:14   #6
Loner
Пользователь
 
Регистрация: 13.05.2013
Сообщений: 10
По умолчанию

2 списка должны существовать отдельно.и между ними 1 свазь
В каждой записи 2 списка должен существовать указатель на n-ую запись из 1 списка.
Loner вне форума Ответить с цитированием
Старый 13.05.2013, 14:31   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да поймите же сами и перестаньте путаться и других путать!
Нет у Вас никакого "1-го списка"! Есть ОТДЕЛЬНЫЕ элементы (динамические), накак друг с другом не связанные.
я бы ОЧЕНЬ-ОЧЕНЬ рекомендовал Вам воспользоваться советом из пост #4


если же Вам нравится играть в коробочку, в которой лежит ссылка на указатель на другую коробочку, ну тогда давайте процедуру заполнения 2-го списка, я там допишу выделение памяти и заполнение дополнительной информации, так пойдёт?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2013, 14:36   #8
Loner
Пользователь
 
Регистрация: 13.05.2013
Сообщений: 10
По умолчанию

Код:
if   head=nil then begin
 New (u); //Второй список
     with u^.data do begin
          Name := edit_name.text;
          proiz :=  edit_proiz.text;
          str := edit_str.text;
          kol := edit_kol.text;
          cena :=edit_cena.text;
          numb := 1;
          u^.next := nil;
     end;
     new(u2); //первый список
      with u2^.dataz do begin
     den := edit_den.text;
     mes :=  edit_mes.text;
     god := edit_god.text;
     company := edit_company.text;
     srok :=edit_srok.text;
     end;
     u^.ukaz:=u2; вот тут..всё закидывает(вроде)
     
     head := u;
     tail := u;
..Допустим зная указатель U как обратиться например к полю "год" из 1 списка

Пробывал так


Код:
procedure wrt;//метод тыка (ошибка.попытка разыменовать нулевой указатель)
var ukazz:dopinf;
begin
ukazz:=u^.ukaz;
writeln(ukazz^.dataz.company);
end;

Последний раз редактировалось Loner; 13.05.2013 в 15:06.
Loner вне форума Ответить с цитированием
Старый 13.05.2013, 14:38   #9
Loner
Пользователь
 
Регистрация: 13.05.2013
Сообщений: 10
По умолчанию

если же Вам нравится играть в коробочку, в которой лежит ссылка на указатель на другую коробочку
Да,вот это интересует
Loner вне форума Ответить с цитированием
Старый 13.05.2013, 15:12   #10
Loner
Пользователь
 
Регистрация: 13.05.2013
Сообщений: 10
По умолчанию

UPD/// Нашёл решение проблемы.Тему можно закрыть.Всем спасибо за участие.=)
Loner вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование двух списков из одного с условием. Pascal iamhated Помощь студентам 2 27.02.2013 16:35
Слияние однонаправленных динамических списков Nataly026 Паскаль, Turbo Pascal, PascalABC.NET 1 06.04.2012 15:44
Организация списков с пом. динамических переменных Лилея Помощь студентам 1 21.05.2011 20:40
Использование динамических списков Delphi Яська Помощь студентам 2 21.12.2010 17:54
Сортировка типизированых файлов и динамических списков (паскаль) SHAK Помощь студентам 4 21.01.2010 21:18