ZU 5) [ÍEINER ÍEINUNG NACH IST DIE VORGEGEBENE ÄATENSTRUKTUR EINER ZYKLISCH VERKETTETEN ÌISTE FUER ÍATRIXOPERATIONEN NICHT OPTIMAL.] PROGRAM MATRIXOP(INPUT,OUTPUT); CONST MX=8; TYPE ELEM=RECORD WERT,SPALTE:INTEGER; NEXT:^ ELEM END; MATRIX=ARRAY[1..MX]OF ELEM; (*ÆELD DER ÚEILENANFAENGE*) (*ÚEILE= ZYKLISCHE ÌISTE *) PROCEDURE ADD(A,B:MATRIX;VAR C:MATRIX); (*C:=A + B*) VAR AP,BP,CP:^ELEM; F:INTEGER;EOFA,EOFB:BOOLEAN; PROCEDURE CPY(WERT,SPALTE:INTEGER); (*ÅRWEITERT ÚEILE F VON C UM ÅLEMENT X*) VAR Y:ELEM; BEGIN IF WERT<>0 THEN BEGIN NEW(Y);Y^.WERT:=WERT;Y^.SPALTE:=SPALTE; IF CP=NIL THEN C[F]:=Y ELSE CP^.NEXT:=Y; CP:=Y;Y^.NEXT:=C[F] END END; BEGIN FOR F:= 1 TO MX DO BEGIN AP:=A[F];BP:=B[F];CP:=NIL;C[F]:=NIL; EOFA:=AP=NIL;EOFB:=BP=NIL; WHILE NOT EOFA AND NOT EOFB DO BEGIN IF AP^.SPALTE=BP^.SPALTE THEN BEGIN CPY(AP^.WERT+BP^.WERT,AP^.SPALTE); AP:=AP^.NEXT;EOFA:=AP=A[F];BP:=BP^.NEXT;EOFB:=BP=B[F] END ELSE IF AP^.SPALTE