|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Массив списков Из матрицы инциденций создать список инциденций  в виде массива односвязных линейных списков. Саму суть преобразования понимаю,но с массивами списков никогда не работал. Может кто-нибудь помочь или хотя бы дать посмотреть какую-нибудь программу с массивом списков? | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Сам св. список реализуется с помощью след. структуры: Код: type
  PNode = ^TNode;
  TNode = record
    Data : Integer; // Например, храним целое число. Или любой другой тип
    Next : PNode;
  end;Соответственно, массив определяется так: Код: var A : Array Of PNode; | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Как объявлять массив я понимаю. Не знаю как дальше работать с ним. Списки в массиве будут разной длины.  Входные данные 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 Выходные PNode1 - 2 - 5 PNode2 - 1 - 3 - 5 PNode3 - 2 - 3 PNode4 - 5 PNode5 - 1 - 2 - 3 - 4 (это списки, которые будут создаваться по матрице и их каким-то образом нужно поместить в массив) | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   Ну так у тебя в массиве уже есть заготовки для соотв. списков. Просто добавляй туда элементы. Код: procedure AddItemToList(var AList : PNode; AItem : Integer);
var
  NewNode : PNode;
  Head : PNode;
begin
  New(NewNode);
  NewNode.Data := AItem;
  NewNode.Next := Nil;
  If AList = Nil Then AList := NewNode
  Else
    Begin
       Head := AList;
       While Head.Next <> Nil Do Head := Head.Next;
       Head.Next := NewNode;
    End;
end;
...
var
  I : Integer;
  A :Array [1..5] Of PNode;
begin
  // На всякий случай обнуляем массив
  For I := Low(A) To High(A) Do A[i] := Nil;
  AddItemToList(A[1],2);
  AddItemToList(A[1],5);
  AddItemToList(A[2],1);
  AddItemToList(A[2],3);
  AddItemToList(A[2],5);
  AddItemToList(A[3],2);
  AddItemToList(A[3],3);
  AddItemToList(A[4],5);
  AddItemToList(A[5],1);
  AddItemToList(A[5],2);
  AddItemToList(A[5],3);
  AddItemToList(A[5],4);
...Последний раз редактировалось lmikle, 13.02.2016 в 05:44. |