Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ»Ρ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ. Π’. Π΅. Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π³ΡΠ°ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ Π²Π΅ΡΡ Π½ΡΡ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½ΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ΅Π±Π½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π±ΡΠ» Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ … Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
1. ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ
2.1. Π‘ΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ²
2.2. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π³ΡΠ°ΡΠ°ΠΌΠΈ
2.3. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
2.3.1. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ·ΡΠΊΠ°
2.3.2. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, Π³ΡΠ°ΡΠ°ΠΌΠΈ
ΠΡΠ²ΠΎΠ΄Ρ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π ΠΠΊΡΠ°Π½Π½ΡΠ΅ ΡΠΎΡΠΌΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
1 ΠΠΠ‘Π’ΠΠΠΠΠΠ ΠΠΠΠΠ§Π
ΠΠ°Π΄Π°ΡΠ°.
ΠΠ°ΠΉΡΠΈ Π²ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
— Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠ½Ρ (ΡΠ΅Π» ΡΠΈΠΏΠ°), Π²Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ;
— Π΄ΡΠ³Π° Π³ΡΠ°ΡΠ°, Π·Π°Π΄Π°Π΅ΡΡΡ Π΄Π²ΡΠΌΡ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈ ΡΡΠΎΠΊΠΎΠΌ, Π²Π²ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
Head:TUk — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρ ΡΠΏΠΈΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π³ΡΠ°ΡΠ°;
n, m: ΡΠ΅Π» — Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠ½;
c:ΡΠΈΠΌ — ΠΊΠ»Π°Π²ΠΈΡΠ° ΡΠΎΠ±ΡΡΠΈΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ:
V:ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ — ΠΌΠ°ΡΡΠΈΠ² Π²Π΅ΡΡΠΈΠ½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²;
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
max=10 — ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½;
V:ΠΌΠ°ΡΡΠΈΠ² [1.max*max].
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ
2.1 Π‘ΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ²
Π‘ΠΏΠΎΡΠΎΠ±Ρ Π·Π°Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ²:
ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ;
ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ½ΠΎΡΡΠΈ;
ΡΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ;
ΡΠΏΠΈΡΠΎΠΊ Π΄ΡΠ³ (ΡΠ΅Π±Π΅Ρ);
ΠΈ Π΄Ρ.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ — Π΄Π»Ρ Π²Π΅ΡΡΠΈΠ½Ρ v Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΠΎΠ² Π΄ΡΠ³, ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½Ρ v, Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ³ΡΠ°ΡΠ°, ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΡΡ Ρ v Π²Π΅ΡΡΠΈΠ½, Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°.
Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΡΠ³ — ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΡΠ³Π΅ ΡΡΠ°Π²ΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΠ°ΡΠ°, Π³Π΄Π΅ x — Π½Π°ΡΠ°Π»ΠΎ Π΄ΡΠ³ΠΈ, Π° y — Π΅Π΅ ΠΊΠΎΠ½Π΅Ρ. ΠΠ»Ρ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ² — ΡΡΠΎΠΉΠΊΠ°, Π³Π΄Π΅ x — Π½Π°ΡΠ°Π»ΠΎ Π΄ΡΠ³ΠΈ, y — ΠΊΠΎΠ½Π΅Ρ Π΄ΡΠ³ΠΈ, z — Π²Π΅Ρ Π΄ΡΠ³ΠΈ.
ΠΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ — ΡΡΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ°, ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠΎΠ»Π±ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ Π³ΡΠ°ΡΠ°. ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ (i, j) ΡΠ°Π²Π΅Π½ 1, Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΠ½Π° i ΡΠ²ΡΠ·Π°Π½Π° Ρ Π²Π΅ΡΡΠΈΠ½ΠΎΠΉ j ΡΠ΅Π±ΡΠΎΠΌ, ΠΈΠ½Π°ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π²Π΅Π½ 0.
ΠΠ»Ρ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ. Π’. Π΅. Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π³ΡΠ°ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ Π²Π΅ΡΡ Π½ΡΡ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½ΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ.
ΠΠ°ΡΡΠΈΡΠ° ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ½ΠΎΡΡΠΈ — ΡΡΠΎ ΠΌΠ°ΡΡΠΈΡΠ°, ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ — ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΡΠΈΠ½, Π° ΡΡΠΎΠ»Π±ΡΡ — ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π±Π΅Ρ. ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠΉ (i, j) ΡΠ°Π²Π΅Π½ 1, Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΠ½Π° i ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ΅Π±ΡΡ.
ΠΠ»Ρ Π½Π΅ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ²:
ΠΠ»Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΎΠ²:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½ Π³ΡΠ°Ρ G (ΡΠΌ. ΡΠΈΡ. .1)
Π ΠΈΡΡΠ½ΠΎΠΊ 2.1 — ΠΡΠ°Ρ G
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.2
Π ΠΈΡΡΠ½ΠΎΠΊ 2.2 — Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π³ΡΠ°ΡΠ° G
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΡΠ³ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ .3
Π ΠΈΡΡΠ½ΠΎΠΊ 2.3 — Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΡΠ³ Π³ΡΠ°ΡΠ° G
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 2.1
Π’Π°Π±Π»ΠΈΡΠ° 2.1 — ΠΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ
x1 | x2 | x3 | x4 | x5 | x6 | ||
x1 | |||||||
x2 | |||||||
x3 | |||||||
x4 | |||||||
x5 | |||||||
x6 | |||||||
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 2.2
Π’Π°Π±Π»ΠΈΡΠ° 2.2 — ΠΠ°ΡΡΠΈΡΠ° ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ½ΠΎΡΡΠΈ
x1x2 | x1x3 | x3x2 | x3x4 | x3x5 | x4x5 | x5x6 | x6x4 | ||
x1 | |||||||||
x2 | — 1 | — 1 | |||||||
x3 | — 1 | ||||||||
x4 | — 1 | — 1 | |||||||
x5 | — 1 | — 1 | |||||||
x6 | — 1 | ||||||||
2.2 ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π³ΡΠ°ΡΠ°ΠΌΠΈ ΠΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠ° Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ.
type TUk1=^TEl1; //ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° Π²Π΅ΡΡΠΈΠ½
TEl1=record
Next:TUk1;
Inf:integer;
end;
TUk=^TEl;
TEl=record //ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ
Left:TUk1;
Inf:integer;
Down:TUk;
end;
Head:TUk; //ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠ° Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.1
Π ΠΈΡΡΠ½ΠΎΠΊ 2.3 — Π‘Ρ Π΅ΠΌΠ° ΡΠΏΠΈΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.4.
Π ΠΈΡΡΠ½ΠΎΠΊ 2.4 — ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΎΡΠ³ΡΠ°ΡΠ°
2.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
2.3.1 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ·ΡΠΊΠ° ΠΡΠΎΡΠ΅Π΄ΡΡΠ° New — ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΡΡΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ; ΡΠΎΡΠΌΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ
New (TP)
TP — ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠ° ΠΎΠ΄Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ Π±ΠΎ-Π»Π΅Π΅ 65 521 Π±Π°ΠΉΡ Π΄ΠΈΠ½Π°ΠΌΠΈ-ΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ Π½Π΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΠ°ΠΌΡΡΡ Π½Π΅ ΡΡΠ°Π³-ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π°, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠΎ-ΡΠ΅Π΄ΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π°ΡΠ°Π»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΡΠ°Π·Ρ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Dispose — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΠΊΡΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π½Π΅Π΅ Π±ΡΠ» Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ Π·Π° ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ; ΡΠΎΡΠΌΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ
Dispose (TP)
TP — ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΠΆΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΌΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
2.3.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, Π³ΡΠ°ΡΠ°ΠΌΠΈ ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
1) procedure AddVer (n:integer); - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π²Π΅ΡΡΠΈΠ½Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ n;
2) procedure AddDug (n, m: integer); - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΏΠΈΡΠΎΠΊ Π΄ΡΠ³ΠΈ (n, m). n ΠΈ m Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠ½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄ΡΠ³ΠΈ ΠΈ ΡΡΠΎΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ;
3) procedure DelList (p:TUk1); - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΡΡ Π²Π΅ΡΡΠΈΠ½. p — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠ°;
4) procedure DelVer (n:integer); - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ n;
5) procedure DelDug (n, m: integer); - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡΠ³ΠΈ (n, m). n ΠΈ m Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠ½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄ΡΠ³ΠΈ ΠΈ ΡΡΠΎΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ;
6) procedure PrintGraph; - Π²ΡΠ²ΠΎΠ΄ ΡΠΏΠΈΡΠΊΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ;
7) procedure FindIstok; - ΠΏΠΎΠΈΡΠΊ ΠΈ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ΅Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΎΡΠ³ΡΠ°ΡΠ°.
ΠΠ«ΠΠΠΠ« ΠΠ°Π΄Π°Π½ΠΈΠ΅, Π²ΡΠ΄Π°Π½Π½ΠΎΠ΅ Π½Π° Π»Π΅ΡΠ½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ, ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
1) Π½Π°ΡΡΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΡΠ·Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ;
2) Π½Π°ΡΡΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ²ΡΠ·Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΡΡΠ΅ΠΊΠΈ;
3) ΠΏΠΎΠ½ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎ ΡΠ²ΡΠ·Π½ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π±ΡΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ°ΡΠΊΠ°Π»Ρ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ΅Π±Π½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π±ΡΠ» Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ , Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΡΠ°ΡΠΎΠ².
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π ΠΠΠ ΠΠΠΠ«Π Π€ΠΠ ΠΠ« Π ΠΈΡΡΠ½ΠΎΠΊ Π.1 — ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π ΠΈΡΡΠ½ΠΎΠΊ Π.2 — ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΡΠ³ΠΈ ΠΎΡΠ³ΡΠ°ΡΠ° Π ΠΈΡΡΠ½ΠΎΠΊ Π.3 — ΠΠ°ΡΡΠΈΡΠ° ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠ³ΡΠ°ΡΠ° Π ΠΈΡΡΠ½ΠΎΠΊ Π.4 — Π‘ΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΡΠΈΠ½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΎΡΠ³ΡΠ°ΡΠ°
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π ΠΠΠ‘Π’ΠΠΠ ΠΠ ΠΠΠ ΠΠΠΠ«
program OrGraph;
uses Crt;
type TUk1=^TEl1;
TEl1=record
Next:TUk1;
Inf:integer;
end;
TUk=^TEl;
TEl=record
Left:TUk1;
Inf:integer;
Down:TUk;
end;
const
max=10;
var
Head:TUk;
c:char;
n, m: integer;
V:array[1.max] of byte;
{————-Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΠ½Ρ Π² Π³ΡΠ°Ρ——————-}
procedure AddVer (n:integer);
var
p:TUk;
begin
if (Head=Nil) then
begin
New (Head);
Head^.Inf:=n;
Head^.Left:=Nil;
Head^.Down:=Nil;
end else begin
p:=Head;
while ((p^.Down<>Nil)and (p^.Inf<>n)) do p:=p^.Down;
if (p^.Inf=n) then WriteLn ('Π’Π°ΠΊΠ°Ρ Π²Π΅ΡΡΠΈΠ½Π° ΡΠΆΠ΅ Π΅ΡΡΡ!!!')
else begin
New (p^.Down);
p^.Down^.Inf:=n;
p^.Down^.Left:=Nil;
p^.Down^.Down:=Nil;
end;
end;
end;
{———-Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄ΡΠ³Ρ Π² Π³ΡΠ°Ρ———————————}
procedure AddDug (n, m: integer);
var
p, p1: TUk;
p2:TUk1;
begin
if (Head=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ!!!')
else begin
p:=Head;
while ((p<>Nil)and (p^.Inf<>n)) do p:=p^.Down;
if (p=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΠ½Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊ!!!')
else begin
p1:=Head;
while ((p1<>Nil)and (p1^.Inf<>m)) do p1:=p1^.Down;
if (p1=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΠ½Π° ΡΡΠΎΠΊ!!!')
else begin
if (p^.Left=Nil) then
begin
New (p^.Left);
p^.Left^.Inf:=m;
p^.Left^.Next:=Nil;
end else begin
p2:=p^.Left;
while ((p2^.Next<>Nil)and (p2^.Inf<>m)) do p2:=p2^.Next;
if (p2^.Inf=m) then WriteLn ('Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ Π΄ΡΠ³Π° ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ!!!')
else begin
New (p2^.Next);
p2^.Next^.Inf:=m;
p2^.Next^.Next:=Nil;
WriteLn ('ΠΡΠ³Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°!!!');
end;
end;
end;
end;
end
end;
{—ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄ΡΠ³—}
procedure DelList (p:TUk1);
var p1: TUk1;
begin
while (p<>Nil) do
begin
p1:=p;
p:=p^.Next;
Dispose (p1);
end;
end;
{————-ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈΠ· Π³ΡΠ°ΡΠ°————-}
procedure DelVer (n:integer);
var
p, p1: TUk;
p2,p3:TUk1;
begin
if (Head=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ!!!')
else begin
p:=Head;
if (p^.Inf=n) then
begin
Head:=Head^.Down;
DelList (p^.Left);
Dispose (p);
end else begin
while ((p^.Down^.Inf<>n)and (p^.Down<>Nil)) do p:=p^.Down;
if (p^.Down=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ Π½Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ!!!')
else begin
DelList (p^.Down^.Left);
p1:=p^.Down;
p^.Down:=p^.Down^.Down;
Dispose (p1);
end;
end;
p:=Head;
while (p<>Nil) do
begin
if (p^.Left^.Inf=n) then
begin
p2:=p^.Left;
p^.Left:=p^.Left^.Next;
Dispose (p2);
end else begin
p2:=p^.Left;
while ((p2^.Next<>Nil)and (p2^.Next^.Inf=n)) do p2:=p2^.Next;
if (p2^.Next^.Inf=n) then
begin
p3:=p2^.Next;
p2^.Next:=p2^.Next^.Next;
Dispose (p3);
end;
end;
p:=p^.Down;
end;
end;
end;
{———ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π΄ΡΠ³Ρ Π³ΡΠ°ΡΠ°————}
procedure DelDug (n, m: integer);
var
p, p1: TUk;
p2,p3:TUk1;
begin
if (Head=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ!!!')
else begin
p:=Head;
while ((p^.Inf<>n)and (p<>Nil)) do p:=p^.Down;
if (p=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΠ½Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊ')
else begin
p1:=Head;
while ((p1<>Nil)and (p1^.Inf<>m)) do p1:=p1^.Down;
if (p1=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΠ½Π° ΡΡΠΎΠΊ!!!')
else begin
p2:=p^.Left;
if (p^.Left^.Inf=m) then
begin
p3:=p^.Left;
p^.Left:=p^.Left^.Next;
Dispose (p3);
end else begin
while ((p2^.Next^.Inf<>m)and (p2^.Next<>Nil)) do p2:=p2^.Next;
if (p2=Nil) then WriteLn ('Π£ΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π±ΡΠ° Π½Π΅Ρ Π² Π³ΡΠ°ΡΠ΅!!!')
else begin
p3:=p2^.Next;
p2^.Next:=p2^.Next^.Next;
Dispose (p3);
end;
end;
end;
end;
end;
end;
{—-ΠΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ———}
procedure PrintGraph;
var
i, j, n:integer;
M:array [1.max, 1. max] of byte;
p:TUk;
p2:TUk1;
begin
for i:=1 to max do
for j:=1 to max do M[i, j]: =0;
n:=0;
if (Head=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ!!!')
else begin
p:=Head;
while (p<>Nil) do
begin
inc (n);
p2:=p^.Left;
while (p2<>Nil) do
begin
M[p^.Inf, p2^.Inf]: =1;
p2:=p2^.Next;
end;
p:=p^.Down;
end;
end;
for i:=1 to n do
begin
for j:=1 to n do Write (M[i, j]: 2);
WriteLn;
end;
end;
{——-Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ Π²ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΎΡΠ³ΡΠ°ΡΠ°——}
procedure FindIstok;
var
f:boolean;
i, k: integer;
Is:array[1.max*max] of byte;
p, p1: TUk;
p2:TUk1;
begin
for i:=1 to max*max do Is[i]: =0;
if (Head=Nil) then WriteLn ('Π Π³ΡΠ°ΡΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ!!!')
else begin
k:=0;
p:=Head;
while (p<>Nil) do
begin
if (p^.Left<>Nil) then
begin
f:=true;
p1:=Head;
while (p1<>Nil) do
begin
p2:=p1^.Left;
while ((f)and (p2<>Nil)) do
begin
if p2^.Inf=p^.Inf then f:=false;
p2:=p2^.Next;
end;
p1:=p1^.Down;
end;
if (f=true) then
begin
inc (k);
Is[k]: =p^.Inf;
end;
end;
p:=p^.Down;
end;
end;
for i:=1 to k do Write (Is[i]: 2);
end;
procedure Menu;
begin
WriteLn ('1-ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ Π³ΡΠ°ΡΠ°');
WriteLn ('2-ΠΠΎΠ±Π°Π²ΠΈΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π² Π³ΡΠ°Ρ');
WriteLn ('3-ΠΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΡΠ³Ρ Π² Π³ΡΠ°Ρ');
WriteLn ('4-Π£Π΄Π°Π»ΠΈΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π³ΡΠ°ΡΠ°');
WriteLn ('5-Π£Π΄Π°Π»ΠΈΡΡ Π΄ΡΠ³Ρ Π³ΡΠ°ΡΠ°');
WriteLn ('6-ΠΠ°ΠΉΡΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΎΡΠ³ΡΠ°ΡΠ°');
WriteLn ('7-ΠΡΡ ΠΎΠ΄');
end;
{————ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°————}
begin
ClrScr;
repeat
clrscr;
Menu;
c:=ReadKey;
case c of
'1': begin
ClrScr; PrintGraph; ReadKey;
end;
'2': begin
ClrScr;
Write ('ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΡ Π²Π΅ΡΡΠΈΠ½Ρ: ');
ReadLn (n); AddVer (n);
end;
'3': begin
ClrScr;
Write ('ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄ΡΠ³ΠΈ: ');
ReadLn (n);
Write ('ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠΎΠΊ Π΄ΡΠ³ΠΈ: ');
ReadLn (m); AddDug (n, m);
end;
'4': begin
ClrScr;
Write ('ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΡ Π²Π΅ΡΡΠΈΠ½Ρ: ');
ReadLn (n); DelVer (n);
end;
'5': begin
ClrScr;
Write ('ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΉ Π΄ΡΠ³ΠΈ: ');
ReadLn (n);
Write ('ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠΎΠΊ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΉ Π΄ΡΠ³ΠΈ: ');
ReadLn (m); DelDug (n, m);
end;
'6': begin
ClrScr; FindIstok; ReadKey;
end;
'7': begin
halt;
end;
end;
until ord (c)=27;
end.