图(C描述)
一、概念
图是由顶点的非空有限集合V(由N>0个顶点组成)与边的集合E(顶点之间的关系)构成。边没有方向的图成为无向图,反之为有向图
无向图: aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQMAAADMCAIAAAD4elFJAAAgAElEQVR4nO2dZ1gU1/v350qMMSrGFhVFUaSLheICQaqggoD4B0FQUaM0SbBBVDTYsKABEWyIDSyIAlYUO1gQqQoqYqEXKdvbzM7szPPi/LIXDyqwyxaE+bzwWmf3nDnLznfmnPvcBSJISEgIAlL0AEhIugWkEkhICIJUAgkJgFQCCQlBkEogIQGQSujWoCiK/YdQKFT0cHoypBK6BQiCgBc8Hu/jx485OTkXL148cuTI9u3bd+7cuXPnzh07dvz777+pqanPnz8vLy/ncDg4jit2zD0MUgndAiaT+eLFiyNHjvj5+VlZWc2dO3fOnDkzZsyYP3/+vHnzXFxcHB0dzczMbGxsZs2aZW9v7+fnd+jQoby8PBiGFT32HgKpBAWAIAiHwwGv2Wx2Wlqar6+vpaWloaGhh4dHUFBQfHx8WlpadnZ2dXV1RUVFZWXlx48fs7Ozr127duzYsQ0bNnh6etrZ2VlaWv7xxx+pqalUKrXNKdhstty/1vcNqQQFgGEYDMMMBiM5OdnJycnQ0NDJySk6Ovr+/fvNzc0drgcQBPn06dPdu3d3797t7OxsZGTk6up65swZHo8n+gyXy5Xxl+hpkEpQDPn5+StXrpw0adL8+fMTExMrKio631YoFKIoCl7U1NRcvHhxxYoVEyZM8PX1LSkpAW+RiAupBHmDYdi1a9dmzpxpbGx86NChuro6cJzNZku2CEYQpLy8/OTJk6ampqampmfOnMEwTKpD7hWQSpArOI6fPn2aQqEEBATk5eW1vmQRBJFMCaATDodTVFS0dOlSdXX1gwcPSm3EvQZSCTJHIBBwOByhUAjDcFxcnLq6enBwcH19vXTPAlYXtbW1O3bs6Nev34EDB8BxBoMh3RP1VEglyBxwp4dhODIyUltbe9OmTU1NTbI7HY1Gi4mJgSAIPBm+NCuRfBVSCfJAKBQmJiZqampu2rRJDjsAbDY7Li4OgqCLFy+SO9OdhFSCrMAwjEajgdfFxcWWlpbOzs6fP3+Ww6n5fL5AIFiyZAkEQeXl5XI4Yw+AVIIMAfMiJpPp6+uroaHx7Nkz+Zy3ublZIBBgGKasrDx9+nTSrtoZSCXIEAzDWCzW1atXlZWVjxw5giCInDe8amtrIQiKioqS50m/U0glyJaysjI7OztTU9OmpiY+ny+384JpGJfLDQ0NhSCooaGBzWa3nrCRtIFUgmy5cuXKyJEjjx8/rqgB5OfnDxgwYNWqVYoawPcCqQSZgON4S0tLdXW1n5+foaGhQvzhgK2WxWK5uLioq6uzWCz5j+E7glSCTMBxnMVivXr1avz48X5+fhJ30vpF63872bylpYXNZufn548cOTI5OVmyYfQSSCXIkGvXrg0bNuzRo0edb9L6Qm9ubsZxXCAQ0Ol0DMPYbLZQKJTg8YJhGIVCWbp0qbgNexWkEmQFiqIRERHm5uZitaqvr09PT3/27Nn169cLCwvZbDaVSm1ubi4sLLx9+3ZRUVFNTU1r7+vOIBQKQ0JCJk2aJFar3gapBFnBZDJnzZrl6OgoVqvi4mJbW1sIgiAISktLIwiCw+HU1dUFBgZCEOTs7JyTkyOBq+mRI0eUlZXF8v3ubZBKkBVNTU2amprBwcHiNuTxeH379oWg//00wO55//59BweHd+/eSTaYhw8fqqmpPXz4ULLmvQFSCbLi8+fPGhoaZ86cEasVCO1fsWIFBEHHjh0jCILFYnE4nLCwsLCwMIkHU11dPXXqVAUac7s/pBJkRX19vZqaWmpqqlit2Gw2k8msqKj4+eeftbS0qFQqjuOFhYVz587tirNGY2Ojg4PDjh07JO6hx0MqQVbU1dUpKyunp6eL63wKPDICAgIgCDpy5AhBEAcOHPD09GQymaKgTRaLJVa3tbW1jo6OpBLagVSCrKitrR01atSdO3cka15WVgZBEIVCyc7O9vb2vnTpEkEQAoFAIBDk5ubevn07KyurqqoKQZDOONgxGAwbGxtSCe1AKkFWNDQ0qKurJyYmStYcx/HFixdDEGRra+vq6ioKPcvMzNy6dWt+fn5UVNSpU6dYLBabze5QDDU1NYaGhvv27ZNsML0BUgmygkajWVtbh4SESNxDfn4+BEFDhgyJj48XHYyKivLx8SEIYt++fTt27OBwOCBjZPtdFRQUTJgw4dq1axIPpsdDKkFWsNlsJycnFxcXiXugUqnOzs66urpMJlN0MDw83MPDgyCI/fv37969u7m5GcOwDl0wUlJSRo4cWVxcLPFgejykEmQFjUbbt2+fjo5OS0uLZD20tLQUFBScOHGi9S3/6NGjK1euhGE4PDx8+/btNBqNzWYLBIL2uzp69KiamprEI+kNkEqQFUKh8NGjR4MGDcrMzJSsB4FAgOM4h8Oh0+mig7m5uZs3bz5z5szevXtv3LgBcmh/9ZkgakWn0z08PBwcHMikwu1AKkGGvHz5Uk9Pb+vWrV3sR7QgRlG0qanpxYsX9+7dKy4ubmhoYDAYdDr9qytmUf7tFy9ejBkzZvv27V0cRs+GVIIMYTKZgYGBRkZG0pqWCIVCoVCIYRiCIOA1iqIoin7rZs9gMLhc7pEjRwYOHFhSUsLn88lUF9+CVIKsQFGUzWZnZmZqaGjs3bsXzHPkOT/BcZxKpdbW1k6ZMsXNzQ3HcQRByHidb0EqQSaAKBkej1ddXb1q1SoTExNg5JFnRH9zczNBEPHx8RAEAQ9WBEFaLzlIWkMqQVYgCEKj0TAMS0lJ0dbW3rlzJ5vNFje0oIswGAw1NTUIghwdHWk0Go/HI5MHfwtSCTKHTqf7+vqqq6s/fvxYDqejUqktLS0gCaS3tzcEQcePHx8yZIidnR2NRiNr8HwLUgnyoKioyNjY2NbWVj5JVmg0Goqi9+7dE4X7ZGVljRs3bubMmeQ64VuQSpAT9+/fHzVq1KpVq8CimU6ny+j2TKPR+Hx+Xl4eBEF//vknOMjhcIqLi8eNGzdlypRPnz4RBEFKog2kEuQB8KPesWMHBEGbN2+mUqkiY78UERmm3r9//+OPP/7++++is6Aoyufza2pqpk6dqqWl9f79e6mf/XuHVIKswP+DRqM1NDTEx8dramqOGzdORUVl/fr11dXVdDpdunoA/qqVlZWqqqrm5uYCgQDc+IE5FeikrKzMxMTE2Ng4MzOzQx+NXgWpBFkBMrKgKPrixYulS5eOHDkyLCyMyWQmJSXp6ur6+fm9fPmSSqVKK30vl8ttaWlJTEwcPHjwVxckGIZRqVQul/v8+fMZM2ZYWFg8f/5cKqfuGZBKkD4iSyWNRouKipo4cSKFQgGGIy6XiyBISkqKjo6OoaFhQkJCVVVVm1adp/WGcUlJyerVqwcPHrxo0SKioyq0ubm5s2fPtrS0zMnJEfekPRVSCVIGRVEGg4Gi6LNnz3x9ffX09NatWye63AFCofDFixfe3t6TJk1as2bNvXv3KisrJSh+w+fz2Wz2+/fvExISDA0NtbS0Dh482MmHTGZmJiiBnpmZCZqgKNqbfTFIJUgZcGnu37/fxMTE1NT01q1b3/oki8U6c+bMjBkzdHR0fH19T548+eHDB1HFcoIggJ/pV9sKBILm5uanT59GRETY2dlpamouXLgwOzu7dfMOefHixezZsy0sLB4/fiwQCJhMZm9eOZBKkDJ379719PQEZQXbv80jCCIQCFpaWk6cOGFtba2iomJpaRkcHHzw4MHbt2+XlJRUVFRUVVVxOBwEQfh8Po1Gq6yszM3NTU5O3rdv3+LFi01NTadMmeLj45OdnS2qwCnWfb20tNTNzW3mzJnXr1+XhTnrO4JUQpdAEETkQEGj0U6fPj1lyhRnZ+ebN292ZrtAVFGhubk5NTU1ICBg1qxZEyZMMDMzmzlz5qpVq7y8vFavXh0aGvr333/7+vq6u7vPmTPHyMjI1NTU1dU1MjKysLCwi2UZysvLPTw8KBRKRkYGQRAgAg6G4d4WzEAqoUvweDxwK83KyvLy8lJXV9+1axd4FEh2gbLZ7MePHyclJYWHhwcEBDg6Onp4eLi7u7u7uy9evDgkJCQ2NvbGjRslJSVS3Jh78+bNwoULDQwM0tPTWSwWj8cD6cZ6lRhIJXSVurq6ffv2GRsbz549Oz09ncPhSMvLTSAQgEI4CIIwGIzW3ntgp0wqZwF8+vRpwYIFRkZGSUlJwALL5XJJJZB0DLjcb9++7ejoqKmpuXHjRlC5A4ZhDofT9dIhbDYbrBDAf0UPHwBIfNTFU7ShvLzcx8eHQqFcuHChF64ZSCWIBwzDQAPV1dVRUVHa2tr29vbp6eltLp2ue1/LuTYhoKWlJSwsTE9P79y5c0KhEIxBIQWB5A+pBPGAYRhF0UePHnl6etrY2AQHBxcWFip6UNIEhuE1a9aoqaklJSXBMMzj8UDET4+HVIJ4NDQ07Ny508DAYMGCBenp6XV1dT3PBv/58+egoKDRo0fHx8cDnyVFj0gekEr4OqCaU5uDeXl5CxYsGD9+fFhYWHl5OZvN5vP5DAaj560suVzu9u3blZSU9u/fD47gON46AVnPg1TC18FxnMfjiSbrOI4fPXpUV1d37ty5GRkZYMIAskuArEQKHaxMwHF87969EASJxMDhcHqwGEglfBMURUEqofz8fGdnZ01NzR07dlRWVoId3x559beBwWCcPHnyp59+ioiIQBAEmLN6qhhIJXwdkIeCwWDExMRoaWnZ29vfunVLZEuRri2/20Kn05lM5o0bN/r06bNr1y7g8CctN/LuBqmEb1JSUmJvbz969OjIyMjPnz/DMAwEAOJvFD06eSByYTp9+vRPP/20bt06cITFYqEo2sMeDqQSvs7ly5d/++23qVOnto7t6iUC+CoJCQlDhw5dsWIF8d8OQw/7a5BKaEttba2npycEQVu2bKHRaEwmUyxX5x5MRkbGoEGD/vjjDxRFe97fhFTC/8etW7cGDBigp6cHyvsJhcIeNgfoCkwm8+bNmxAE/fHHH4oei/Tp1UqgUqnNzc3AJCoQCMCjYNOmTYoeV7cmIyNj8ODB9vb2zc3NIGeHokckHXqvEkTTXC6Xe+/evQEDBvz22295eXngYC/ZWJWMnJwcECVHo9EYDEZzc7Ocs1zKgt6rBJAr9+PHj/7+/hAEBQcHg+PySVP3nYJhGJguXr161cDAYPny5R8+fOgZuVZ7nRJElkEqlXrlypWJEyf269dP3PrhvRwwKbp+/frUqVMXLlxYXl6u6BFJgd6lBFDEAEXRkpKSwMDAgQMHOjk51dXV9dTdIllz9+7dSZMmzZkz5/Xr14oeS1fpXUqAYbiysjIxMdHW1tbQ0PDQoUM9zCgufzIyMvT19d3d3d+9e6fosXQJxSsB1HohCAJ4s8n0XLm5uYsXLx4/fnxQUFBjYyPYM+6F8VnSJTMz09ra2snJSZRig/ivXKJiByYW3UIJwBLH5XJbB2q183fEcRxFUQRB2olqxzAM6Ar0w2AwLl26ZGZmZm5ufuPGDbBLCraHQDpRkq5QWFhoZ2dnamp6+fJlENYHSryJJQZQM+5bb4HfGoZhGeUYV7wSADweD1yRYCpfV1f34sWL9PT05OTk8/9x9uzZe/fuFRUVlZSUNDQ0tAntbQMIhwdruydPngQFBU2dOvXvv/+uq6sjCIKsvSd1Xr165eXlRaFQEhMTqVQqn89nMpli/ZEFAsG3zFAgeo4giJaWFhltb0MEQWAYpvBSKwiC1NTU5OTkHD9+PDAwcOnSpQ4ODvr6+gYGBqampiCfnIGBgaGhoY2Nzdy5c//666+4uLi8vLx2jJ4wDFdUVMTExJiZmVlYWCQkJICIgt6Wv0QOCAQCsAbz9fWdPHny0aNHJSg3KhQKaTRaYWHhzZs3L168eO7cuRMnTiQkJJw9ezYlJeXVq1d1dXWNjY0yuoVBhAxShogLn8+/ffv2ypUrbWxszMzMfv/998WLF4eGhu7bt+/ixYsPHjy4d+/evXv30tPTz5w5s2/fvuXLl1taWhoZGVEoFC8vrzNnznz+/FnUG1hvwDCclZW1cuXKadOmLV++PDc3VzRz5fF4bDabFIN0AYVxq6ur/f39x48ff+LEia9OdUAIVOsjKIp++PAhNTV18+bNXl5eILWZvr7+zJkzLSws7OzsrKysJk+ebGNj4+zsvH79+r179z569Ejqc1oFz46oVOrZs2f9/Pz09fUdHBxCQkJu3Ljx7t279r19+Hx+cXHxzZs3w8LCnJycDA0N586de/jwYaAHoVDY1NR06NAhCwsLW1vbY8eOtUnQSxAEj8cjZ0cyorq6ev369aqqqiBdcZubLI7jotUgk8m8f//+unXrZs+ebWJiYm1t7enpuXXr1ujo6Pj4+Lt37z5+/DgrK+v+/fv79+/fsmWLj4+Po6MjhUKxsLDw9PQ8ffr0l7+sxChSCS9fvly5cqWysvL8+fMPHjz4+vXrztuOWCwWl8tlsVhVVVWXLl3y8vJSVVWdP3/+jRs3srKygoKCtLW1V69enZubq5B0Kb0ZcCf666+/lJWVDx48yOVyv5xxCASC1NRUDw+PadOmWVhYbNy48fLly4WFhVVVVV91ZGIwGAwGg8/nf/jw4fr167GxsV5eXgYGBtbW1hEREWVlZaJuJZ7nK0wJiYmJKioqhoaGu3btKi0tbf2WQCDo0I8F2BDAPAdBECqVmpCQMHv2bHV1dV1dXVNT0/Pnz9NoNARByFmQnOFwOHw+n8vlbt68efjw4dHR0W3yxFRXV//5559qamp2dnaRkZF5eXmiOyC4lL98XH9pJ2xsbLxw4cLixYvV1NRsbGzu3LkDjku8SSpvJYA7dExMzJgxY2bNmpWdnf3l1xYZQDsE5LIVffmysrLg4OAhQ4aYmpqCFRsQg1S/AUkHCAQC8Ivw+fyIiIgxY8bs2rULvIXj+KVLlwwNDXV0dKKioiorK7s4R21sbExJSfHw8FBVVd24cWNNTY3EXclbCQiCHDhwYPDgwevXr5eFvyeLxUpOTjYxMVm5ciWDwRClrCNRFIcOHRo2bFhkZCRBEEeOHBk+fPj//d//3b9/X1rrNC6XW1VVtWXLFg0NDU9PTzBTgmFY3DugvJWwefNmJSWlXbt2yW76TqfTL1++rK2tvXDhwurqahmdhaTzxMXFqaiouLi4DB48ODQ0VIrBT0KhkMfjgclYamqqubn53LlzX79+LQo67zxyVcL+/fsHDhx47Ngx2XlVgHB7gUBw/fr133//3cvLSwLDNom0EKVFo1AoEARt3boVOMNLEbBHhGEYnU6/ffu2sbGxg4NDSUmJuP3IQwlgUZuXlzd8+PCQkBC5OX6eP39+woQJYWFhXC6XzWYrfPewFwL2g1NSUiAICg8PJ2Tm2wL0hqJoRkYGhUJxcHAQ11dcTs+Eurq6qVOnGhkZgbWBHJLOoija0tKyefPmCRMm3Lx5E/gpyfqkJF9SUFAwatSohQsX8ng8DMNkHd0mFAqTk5NVVVW3bNki1tRDHkqAYXjt2rXDhw+/e/cuOCIfyyaGYa9fv547d66VlZXI5EwiZzQ0NMaNG1dRUUEQBI/Hk7US+Hw+j8eLjIwcM2bM2bNnO99QHkooKytTUlIKCQlRSFrpc+fOjR07du/evfI/NcnWrVt/+OGHFy9egP82NjbK5ybIZDKtrKwsLS3r6ur4fH5nJuTyUMKaNWtMTEzevHkjh3N9SUtLi4uLi4eHx6dPn0iLqjxpamr65ZdfvL295Zz/AixOMjMzdXR0jhw50tLS0hn5yVwJFRUV2tra//zzT0NDg6zP9S2uXr06ceLEU6dOKWoAvRChULhnz56BAwfKP8qZy+WChejSpUuNjIxevXrFYDA63L6QrRJwHD9w4ICenl47BbrlQE1Nja2trY+Pj9RNeCTfoqamRlVVNTQ0FKSBkfPZwW5VUVGRyEW8w8eCbJXA4/EWLVrk4+NTXl5Op9Ml3lbsYlJeoVC4Zs0aMzOzV69eET0uoWf35MqVK7/88svDhw8VOAYcx21sbFxdXT9+/Njhh2WrhE+fPk2bNm3nzp2dvyt89TLlcrkSr7bBxvu5c+cMDQ3T0tJAbguhUEjqQaYsX77c2Ni4oaFBscGxMTExurq6z58/7/CTMlEC2PYjCOLWrVtqamrnzp1r58M4joOFLIqiDAajtrYW5FRDURS8BXzc+Xy+ZI6lfD4fhuHy8nITE5PY2FhwRjqdTq6eZQT4jdTU1NatWwfDsGKVkJ+fr6ysfOzYMcWsE8DFRxDEoUOHTE1NCwoK2vmwUCgEDhEVFRVnzpzZtm3b9u3bz507V1tbCwLDS0pKoqOjIyMjc3JyJNgnBtVUq6qqZs2aFRgY2NLSwmKxel6ZwO4DDMNlZWXKysoXL17sfCuhUAjDMJfLBXsOXC5XdO2CLQJQnVpcBwUWizV9+vSQkJAO9zFkOzvasGGDmZlZ+04gotwWTU1N8fHxqqqqP/74465du8DqFsfxwsJC4EySn58v2UoDeLd7enrOmzevpKSEDFqQNdeuXRs6dGibsJP2QRDkzZs3Z8+e3b179969ey9dukSlUsFz++nTp7t37z5w4EBBQYFY4fyg+ZIlS5ycnDpM8ilDJWAYtmzZMgcHh8rKSqJVGsZ2oNFo0dHR/fv337Rpkyh1RVlZWVBQkGh/WmLWrl1rYmIiygFMIjtiY2N1dHTq6+s73wRBkLKysj179igpKfXt2zcmJqa+vp5Go7HZ7IcPH4JU9dnZ2WINA1iQQkJC9PX1O/RKlpUSwFPM39/f1dW1vLycyWR2+FxDUZTL5RYVFWlra5uYmIieJHv37g0PD6+qqoJhuCv38rCwMHNz87dv30rcA0kn2bRpE4VCaWxs7HwTBEEQBGlubl64cOHgwYOvXLnC4XBoNBqXy83OztbV1a2pqcEwTKw+AbGxsRMnTiwuLm7/Y7JSArid+/n5ubq6vn///qsheW0AoWpcLnfLli1Dhw6Njo4mCKKsrCwgICAlJQWG4S5G9mzevNnc3FxRW929ijVr1lhaWkq2jZCWljZixIiFCxd++vRJIBAIBIIlS5Zs2LABvCsqko3jeCcjEOLi4rS0tDr005btOiEwMNDFxaXzCQhAcrvMzMzx48fb29s3NDTEx8cHBwe/f/+eIAg2m11XV3fx4kXJQg7WrFljZWUl1uSVRDJCQ0NnzZol2c/EYDCcnZ0HDRqUnp5OEMTbt28nT578pRkU5K3qTIcnT57U1NRUsBJ2795taWmZn5/fyc9jGAYy9AcGBg4dOjQ8PDwwMPDw4cPgeSIUCsvLy8H+uQSDWbx4sZOTU3V1NYqipAlVpoSFhdnY2DQ1NUnWPCEhYeDAgf7+/mw2e9++fYsXL/78+TO4BthstrjerIcPH548ebLClABmR8ePH9fS0rp9+3YnW4my8V25ckVFRaV///5OTk6i+wGYYmlra3dmy7A1YKfCycnpr7/+AiZUMtmR7EBR9OjRo6NHj66trZWgOYZhTU1NVlZWw4YNS0tLs7W1vXTpEkjq8+rVqz179mzatKmsrAyYXDvT4caNGykUSocTE9mumDMyMkaPHh0dHc3lcjkcTmeWCkBCjY2NK1asgCBo9erVoukg2ATQ09OTINjgw4cPxsbGBw4cEPubkIgJDMNPnjz56aefcnNzJWgOrpxDhw4NHDhQRUVl7ty5It/NGzduPH/+PCAgAKwhO7O5JBAIFi1aZG9v3+EiU4azIxzHP336ZGZm5uPjU1lZKTIPd5KTJ0+amZl96bo3ZcoUsWZHCIJgGJaSkkKhUBTrCNhLYLFYPB5v0KBBcXFxxH8+0p0H+BNUVVVNmzYNgqCYmBgWiwU6odPpAoFg8eLFT58+7eS1xGQyTUxMNm/e3OHyWoZKANHDf//9t4WFRUFBgbgG0IqKijt37rSxSWMYNmrUqJcvX3a+H6FQiKLohg0b5s2bB1beJDIFXKOmpqbe3t5UKlXcdTOIzScI4p9//pk6dSqwcIA6nwRBVFRU2NjYREZGdjIWNzs7e8SIEUlJSR1+UrY7awRB3Lx5U1VVNSkpSdwM1Twe78u045WVle7u7jk5OWKNpKmpyd7ePjAwsMeUTO3+BAcHq6ioVFdXS7AFBK6c169fP3/+HEyJEQQRedQ/evTIyMio/R5E27IHDhzQ0NAA1bXbR+aROgiCzJ8/H5iHxWr4VXdRgUDw/v17cR+4SUlJRkZGYkW1knSR7OzsAQMGXLhwQeIe2sx/2Gz21atX379/n5WVtX///g7bgowq9vb2np6endnZkLkScByPiYkZOnTo1atXZX2ur9LS0rJgwQJ3d/cPHz6QJiP5wOVyURS1s7ObMWOGVJ7DdDqdwWA8ePDg2bNnT548aX+nGbjxEQTx/PlzLS2t06dP0+l0BUfqAGg0mpGR0bx58xTiAXr06FFdXd0zZ86Am4T8B9ALYTAYHA7nxo0bffr0SUlJ6boYwAQBBJa0HwbM4/FYLBabzRYIBCtXrrS2tgZpNTpETvmOrl+/PmTIkJCQEPCcklteuvz8fGNjYy8vL5CBkHRBlQ+iv7OlpeX06dOBYVRaMZzt/4igOhmoTaOsrLxr165OluGRXzZIf3//fv36lZaWslgsCfyoxAVs0KxZs2bChAmPHj0SCoWKrRvUO3n16hUEQfHx8aJCaXIAQRAWi2VlZTVjxozOJ8aVnxIQBDExMaFQKHIr7REXFzdgwIA9e/aAOpDkIkEhbNu2DYIg4JmPoqjELhhisWHDhjFjxgDPpU4i1wzBFRUVY8aMmTlzpozKJ7bmwoULysrKQUFB5KNAsfD5fDc3t759+3I4HClmyW6HCxcuqKqq7tmzR6zJsLyzxhcVFf3www82NjbSFQOoaEQQBI7jVCr1ypUrOjo6q1atIpfI3YHGxkZ1dXUNDQ0qlQpWz1JfsMEwTKPRYBh+8OCBsbExcNoT60TyVoJQKCUCchoAABSFSURBVCwsLOzbt++0adNkseMrEAiSk5OVlZUXL15MyqD70NTUNGjQIBsbG7BakHqYP6iudP/+fQMDAzs7u9evXxMEwWKxOn8NKKCmDoIg1dXVEydO7NOnT1xcnFgx2hiGfUvlOI6XlpauXbtWSUlp7dq1ooPk8qA7wOVyP3/+PHLkSAMDA3GDMNsHXA8IgqSmpurp6bm6ulZUVIhySnQeeSsBVHwiCIJGo/n5+f3888/z5s3Lzs7u5AySwWBgGAYqR4gO4jje3NwcFxc3ffr0sWPHJiQkAC8ugiBAtRUZfRcScamoqKBQKOPGjYuLi5NKdlAMwzgcTmVl5aZNm0aMGLF06dIOI/e/hYLrMd+4cWPatGkDBw50d3dPSUl5+/ZtG6vzV7PfsdlsoBw+n19UVBQXF+fk5DRkyBA3N7fCwkJQcUh+34FEHOh0+rZt25SVlZcsWXL79u3WHpZg46zzXWEY9uHDh7S0NBsbGxUVlfDw8K7c9RSsBIIgmEzmoUOH5syZM3bsWBsbm82bN1+7dq2goKChoYHL5TKZTHBZgy1GEHNTUlLy/Pnzy5cv//333+bm5mPHjl20aJEoMk4OhikSCeDz+WB5IBQKU1NThw0bNnz4cF9f36SkpPfv3zOZzM7k8QVQqdS8vLwTJ04sWrRIR0fH29u7/ZxanUHBShCtnGg0Wlpa2oIFC6ZPn25oaGhpabl06dLw8PCIiIjY2Nj4+PgTJ078+++/ERER/v7+ZmZmOjo606dPNzIy2r59e2lpKVgYicK9Sbohogkwm80+fvw4hUKZNWuWra2tpqbmvHnzdu/effny5dzc3Lq6Og6HAxaEIJkijuOg5HZVVVV+fn5aWtrKlSvnzJkzadKkpUuX3r17VyqGcsU/E1qD43hFRcXVq1d3797t7+/v6elpbW1tZmZmYWFhaWlpZGRkYWHh4OAwfPjwH3/88dSpU7KoY0siI8Ddqrq6Ojg4WFdXNyQkhEaj0en0lJQUf3//mTNnGhgY2NjYeHl5bdiwYc+ePVFRUdHR0dHR0QcPHty9e/eKFSvmzZtnbm5uZmZmbm6+cePGrKwsKQ6veykBAO4HAoGAw+E0NjZ++PDh7du3paWlb9++ramp4fF458+fNzAwcHV1BcYyku8CHo+Xk5NjZ2enp6d36tQpGo0mWs4JBILKysq0tLT9+/f7+fl5eHjY29vb2trOmjULPDfc3d3d3Nz8/f1jY2Pv3LkDvHWkawvpjkogWtl82tiDQeJrDoeTmZnp6Ohobm6u2LzkJJ3nypUr6urqpqamd+7cIQgChuFvGTpbWlrq6+vLy8uLi4vfvXtXVlZGpVKBIzOPx2Oz2eBeKV0/zm6qBBRFBQIBiqIgybvoOI7joBI1QRBv375duHChnp6eWJloSeQGj8cDK2AajbZ///5JkyatWrXq3bt3REfB+CLv/S+DlUUphMGVIMXRdlMldBIYhv39/UeMGHH8+HFFj4WkLWAVV19fv2jRIjU1tYMHD3bnshXftxJA9sjQ0FBlZeVt27aR7hXdChzH8/PzHR0djY2NQUlsRY+oPb5vJQAvK4FAcOjQIVVVVR8fH2CWJfeVFQ6Hw0lOTjYyMnJzc3v27BmKot28yN33rQTwEAA5xaKjo42MjNzd3d+8eUP6GikWDMNCQkK0tLTWr18PYmVEOd26Ld+3EgAwDAOvwwcPHlhYWMycOROUwuZwOKTbhfx59+6ds7Ozjo5OXFwceER386cBoCcogfgvhSCO4zk5OQsWLNDU1Lx+/TrRuYSBJFIkLS1t8uTJ06dPv337tsjy813U8uohShCB4/jr16+9vLxUVFRSU1MVPZxehEAgiIqKGjt2rLe39/eYa7CnKQHDMC6X29TUFBwcPHTo0H/++QfE8jOZTDKMU3bw+fzAwMBff/1127ZtwC8a+M8relxi0NOUAJxVcRxnMpkJCQkqKirbt29vsz1HIl2Ki4sdHR11dXXPnj3b1NQEzBVdLCYvf3qaElqDYVh8fPzo0aMXLFjw/v17Lpfbzc0X3yN37txRV1efOnXqkydPOBzOd7Ek+Co9WQmAe/fuTZ482c3NTdz6IyQdEh8f/+uvv3p4eHwX1qH26flKIAji4cOH48ePnzFjhljp5knagUqlLlq0qH///tu2bft+nwOt6RVKIAiivLzc2NhYQ0NDuk7tvZOioqLff/99+PDhiYmJovzs3zs9XwmizMnl5eXz589XV1e/dOkSMGvg/6HoMXZfvtytf/z4sYaGhpWVVVFRkUKGJCN6vhJag6Lo8uXLlZSUDh48CMMwk8mkUqlySNL6/dI6wQKHw4mNje3Tp8+yZcvkk9RRnvQuJQBCQkJUVVXDwsKqqqpQFJU4L0iPp7XpubS0dOXKlQMHDoyKigJHeliBot6oBIIgEhMThw0bFhQU9PHjR3Kr4VuILEK3b9+ePXu2oaHho0ePFDoiGdJLlUAQxI0bNyZPnuzt7d3D5rtSAcSREwQBw/DRo0cnTpxobW0tbn2w74veqwQcxx8+fGhlZUWhUETFz0kAMAxjGPbx48e1a9cOGzYsODhYKinrujO9VwkgmqesrGzOnDl6enqJiYmKHlF3QSgUcjicsrIyFxeXUaNGnTx5EpjXetjCoA29VwkADMNQFPXx8VFSUjp9+jQ42At99RAEEa2XOBzO+fPnjY2NzczMHjx4oNiByY3ergQRgYGBY8aM+ffff0VFsLszUh8hn88HBbPpdHpkZKS6uvqCBQuqqqqke5buDKmE/9HY2Lhnzx4NDY2AgABFpdYDyc5KSkoePnwYHR29e/fuLVu27PqPqKiohISEO3fulJWVSat6X+tToyj69u3blStXGhgYhIWFSf0U3RxSCf+b/lKpVAzDLl68qKuru3z58uLiYnmOoaWl5cGDB1u2bHFzc7O2tjY1NbW2tp43b563t3dQUJCPj4+/v7+Dg4OdnZ25uTnICRcTE5OXlyeVdMgYhvH5/Lt377q4uFhYWCQlJfXC3UZSCQTwxRCtDVJSUqytrR0dHYF1VdZFOz99+hQTE+Pu7m5kZGRpaenj4xMREXH69OmcnJzS0tKGhobm5ua6urrPnz8XFRXdu3cvISEhIiJi2bJldnZ21tbW3t7eqampNBpN5AYH0iSLlSxZIBCcPHmSQqEsXLjw4cOHIO2aTL5tN4ZUQluYTGZWVpa7u/vkyZOvXLkC0jUT7WYvFAs+ny9KbBgTE2NpaWlubh4UFHT27NnMzMxOZk6vq6t79OhRbGyst7f31KlTra2t09LSgCcc+LczN3WwSq6vr9+6dauBgcHGjRtfv37dCzUAIJXQFgRBmExmcXFxYGCgoaFhcnIyQRBCoZDFYklrNxrH8aysrPnz5+vo6ISEhNy7d0+ySTmLxXr37l1aWtqyZcu0tbX9/PxAAigWi8Xj8ToTM1BcXOzm5kahUE6cOFFXV0en07u/tUBGkEpoi1AobG5u5nA4VCo1PDxcX19/z549TCZTIBBI5ZmA4/ixY8c0NTVtbW0vX74sWe09GIbpdDqoM0AQBJPJTExM1NfXNzQ0vH//Ptgq6VC3d+7cMTExcXFxefr0qSg/ea/1zCWV0BZQvAfcGul0ekxMjL6+/oYNG6hUatfvl3w+Pzw8fMKECaGhoV2xUQqFQoFA0CZkvqCgwM3NTU1N7cKFC0S79S1xHD9x4sS0adNWrFhRUFDwfYXeywhSCR0gEAgSExP19PSCgoIaGxsxDGMwGJLFpiAIsmPHjgkTJhw4cEBGuxbNzc0BAQEjRoxIS0v71jOhvr7e399fVVV1586dvdBG9C1IJXQAyE6ekpKira1ta2tbXFwMyr2J2w+CIOHh4VpaWuIW3hUXNpv9zz//QBB05cqVL98tLi62s7MbO3ZsYmIinU5nMBhUKpXMj0aQSugQMCPn8XiZmZn6+voWFhZv3rwRtxOhUBgbGzt69OioqCiQYoPNZsvo+gOZnYAYcnJyWr/16NGjKVOm2NnZ5ebmAtMwGbUnglSCGLx7987KykpbW1vkjcNkMhsbGzu8knJycvT19QMCAuRjowQ7JC4uLkpKSgRBsNlsgUCQlJQEQdDs2bOBVymTySSLlLaGVEJn4XK5QqGQy+V6eXmNHj36wYMHPB6vpaWlw+k+k8lcsmSJnp5eUVGRfKKCmpubEQRhsVgQBC1atAjDsNWrV0MQFBgYCKxDkhmsejakEsQDOO77+Pj8/PPP586d6/DzGIYdOnRo7Nix6enpchheG3JzcyEI+uWXX3788UdgUCL5FqQSJOTw4cMQBO3du/dbJkihUEij0UpKSmbMmLFgwQI5Dw+Aoujs2bN//fXX+vp6oVBIpVKbm5tFdZFJWkMqQUJQFD18+PDPP//s6upaWVn55QfAJOTy5csqKiqip4f816YPHz784YcfyKKMHUIqQULA2vfu3bsjRoyYPXv2p0+fvsyRQaPRXF1dXVxcwH9BDICcx8nlch0cHPT19eV83u8OUgkSwmKxgDt3fn6+mpqaqanps2fPRO+CKVN2dvbo0aNPnjzZflfA06GdD+A43pVt4HPnzikpKZWWlrLZbNJg+i1IJUiBxsZGc3NzPT09UHNbKBSCotlHjhzp379/YWFh+82pVCrYrfuWGQpF0a6Uyfrw4cOYMWMOHDgAirpL3E/PhlSCdOByuZ6eniNHjjxx4gSNRkNRFIZhX19fMzOzDtuy2Wxgn/348eOtW7dyc3OvXbv2+PFj8C6Koq9evbpz586dO3dAWW9x4fP5zs7Os2bNIjfR2oFUgtRAEGTnzp39+/ePjo7m8XgsFsvS0nLjxo2d7yEvL8/V1bVv374QBK1Zs0bU7fHjx0eOHKmnp5eUlCTW3hzYxmYymREREWPGjOFwOL0wWUEnIZUgNcDEIyEhYfz48QEBAbdu3QIpUsS6dlEUtbCwgCCooKBAdLC0tHTGjBnR0dHi1nIV7aBdvnx51KhRPaDKgewglSBlYBhOTEzU1NTU1tbu169fRkaGuD1kZmZCELR69WrRkeTkZHNzc1DYWDJyc3OHDRv29OlTiXvo8ZBKkDIgSubatWvGxsa//fZbfn6+WM3Byvi3336DIKimpoYgiIaGhoULF65bt64rPkvV1dUaGhonTpyQuIceD6kEWZGRkTFs2DBQI11cDh48CEHQ2rVrCYJ4/Pixnp7es2fPuuK7WlNTM2XKlIMHD5LpkL8FqQRZUV5erqSklJeXJ25DEEg9evRoVVXV5ubmf//9d9GiRcC+RBAEnU4XK28F4N27d5qamqdOnRK3Ye+BVIKsqKurGzp0qLjrBDab3dzczOfz9+7dC0HQn3/+aWxsDOb3PB4vIyMjJCQkNDQ0Ly8PQZDOz5cKCgomTJjw1dgdEgCpBFnR0NAwevTow4cPi9UKhmEEQTAMo9Pp/fv379u3r7u7O7jiWSzW48ePb9686ePjExoayufzOx//mZGRoaysXFpaKvbX6DWQSpAVVCrV2NjYz89P4h527NgBQdDz589hGBYKhUwmE0VRHMd37ty5bdu2zvQgsqIePXpUSUkJrOZJvgqpBFkBw/C6desoFIrEPXz8+DEwMJDH44GNYT6fjyBIfn5+RERE692GdgDpj3Ac9/f319TUlHgkvQFSCTLk4sWL/fr1k7gINMhcTRAEhmE0Go3D4dTV1aWmpj5//pzFYnUm7gxYiqhUqpmZWWBgoGTD6CWQSpAhBQUFGhoa+/fvl6w5cPOmUql0Oh3H8bq6utWrV9va2gYEBOzfv7/zafNu3bo1YMCA8+fPkzks2oFUggz59OnTggULTE1NJbB7Ev+5dmMYBlbGHA7n6dOnt27devz48Vdjg74EaOmvv/5SVVUlS4y2D6kEGYJhWFxc3Pjx41NSUvh8vmR66Ao0Gq22tnbw4MFBQUFyPvV3B6kEWYFhGJfLra6unj59uoeHh/wH0NLSwufzd+7cCfz5SC/U9iGVICvAngCO40eOHBk1apT893fpdDqTyQTJXYRCIemI2j6kEmROS0vLvHnzKBRKfX29PE9KEISjo+OQIUPkdtLvGlIJ8uDJkydqamoBAQE0Gg0EGMg0doxKpQoEgpSUFAiCJHB86p2QSpAHOI4fPnxYRUUlMjISHJFdXlSCIHg8XnFxMQRBIGJOUQUUvy9IJcgDDMM4HE5MTIympubRo0dbe84JhULpPh+4XG5OTk6fPn0cHBxIH+zOQypBfsAwvHPnzgkTJkRHR7e0tID4ejqdLpXrVeSNl5WVNXjw4Llz53YlHUYvhFSCPBAKhWCbjMvl7tixY9KkSdu2bausrORwONLKns3j8Wpra2NiYkaOHLls2TIul0smdBELUgnyAATfgN1iHo937NgxLS0tW1vblJSUuro6MDsCfqaS9c/j8Z4+fert7a2qqrpp0yZyO1kCSCXICQRBWk9XHj586OLioquru27dups3b7auZoCiaOsEFjiOIwiC4zgMw1/Oo3g8XlFR0ebNm6dMmTJt2rSbN2+SRdMkg1SCwmCxWNHR0dOmTdPS0lq9enVycnJFRQWPx+Pz+W3MSnw+H8dxDocjUgKKojU1Nbdu3QoNDbW2tp48eXJQUFBDQwMpA4khlaBIEAR5+fLlvn37bGxs9PX17e3tN27ceOHChSdPnrx9+/bz58/ggUCn0zEMY7FYlZWVL168SE1NDQ8Pd3FxMTIyMjY2Dg4OfvLkCeln2kVIJSgS0eVbX19/7ty5FStWeHh4zJo1y8rKytnZ2c3Nbdu2bRs3bgwICNi0adOKFSvc3d3nzJljbW09e/ZsLy+v6OjoV69eSVYIlKQNpBK6ESC1cHp6emxs7N69e319fX19ff38/FatWuXj47NixYotW7ZERkZeuHDh9evX8vds7dmQSuh2iCxIKIqyWCwmk9nQ0NDQ0EBuFcsUUgndFFCcAYAgCIIg5IaxTCGV0E0hwwnkDKkEEhKCIJVAQgIglUBCQhCkEkhIAKQSSEgIglQCCQmAVAIJCUEQxP8Di+hEhWCuYmsAAAAASUVORK5CYII=" alt="" />有向图:aaarticlea/png;base64,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" alt="" />
二、图的表示
常见的图的存储方法有两种:邻接矩阵存储法与邻接表存储法
1、邻接矩阵
邻 接矩阵存储法也称为数组存储方法,核心就是利用两个数组来存储一个图,一个一维数组用来存放图中的数据(顶点):vertex[0,1,2...,n- 1]另外一个二维数组用来存储图中顶点之间的相互关系(边),称为邻接矩阵:A[i][j] = 1(当顶点i与顶点j有边) | 0(顶点i与顶点j无边)
举例:一中的有向图就可以表示为
数组:[0 , 1 , 2, 3]
邻接矩阵:
0 1 0 1
0 0 1 0
0 0 0 1
0 0 0 0
邻接矩阵不适合存储边很少的图,可以用邻接表存储这类图
2、邻接表
邻接表存储法是一种顺序分配与链式分配相结合的存储的方法,由链表和顺序数组组成,数组用来存储顶点,链表用来存储边,对图中的每个顶点分别建立一个顶点,如果一个图有n个顶点那么就有n个链表,每个链表前边设置一个头结点,成为顶点结点,结构如图:
aaarticlea/png;base64,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" alt="" />其中vertex存放顶点的数据信息,next指向顶点vertex上的第一条边。通常用一个数组统一管理顶点结点,并用该数组的下标表示顶点在图中的位置。
链表的每一个结点表示一条边,被称为边结点。
aaarticlea/png;base64,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" alt="" />(边结点结构)adjvex指的是该边结点所代表的边的另外一个顶点(即该链表顶结点与该顶点构成了该条边),weight代表边权重(边长),如果图没有该项则省略,next指向下一个边结点(即该链表的顶点结点的下一条边)。
举例:一中的有向图可以表示为
数组:[0 , 1, 2, 3]
邻接表:
aaarticlea/png;base64,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" alt="" />
除了以上两种存储图的方式外还有十字链表存储法,多重邻接表存储法等。
三、C描述
邻接表用C语言可以描述为:
#define MAX_VERTEX_NUM 20
// 定义边(链表中结点的类型)
typedef struct ArcNode{
int adjvex;
struct ArcNode *next;
infoType *weight;
}ArcNode;
// 定义顶点
typedef struct VNode{
VertexType data;
ArcNode *firstarc;
} VNode G[MAX_VERTEX_NUM];
如何用C创建一个图呢:
CreateGraph(int n , VNode G[]){
int i , e;
printf("Input the info of the vertex\n");
for(i=0;i<n;i++){
/*得到每个顶点中的数据*/
GetData(G[i]);
/*初始化第一条边为空*/
G[i].firstarc = NULL;
}
for(i=0;i<n;i++){
printf("Create the edges for the %dth vertex\n" , i);
scanf("%d",&e);
while(e != -1){
/*创建一条边*/
p = (ArcNode *)malloc(sizeof(ArcNode));
p->next = NULL;
p->adjvex = e;
/*i结点的第一条边*/
if(G[i].fristarc == NULL) G[i].firstarc = p;
/*下一条边*/
else q->next = p;
q = p;
scanf("%d" , &e);
}
}
}
图(C描述)的更多相关文章
- javascript的时间描述图怎么写
在gis系统中往往需要在一个时间间隔内把图形动态播放出来,比如2000年到现在地震变化啊,海啸的变化,在flex中这种展现方式需要后台rest服务相结合,要建立有时间点的图层,arcgis发布要选ti ...
- 软件工程里的UML序列图的概念和总结
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习! 软件工程的一般开发过程:愿景分析.业务建模,需求分析,健壮性设计,关键设计,最终设计,实现…… 时序图也叫序列图(交互图),属于软件 ...
- 浅谈UML的概念和模型之UML九种图
1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目的]帮组开发团队以一种可视化的方式理解系统的功能 ...
- UML类图的6大关系
<小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...
- UML九种图作用简介
UML(统一建模语言):是面向对象的可视化建模语言. UML中有3种构造块:事物.关系和图,事物是对模型中最具有代表性的成分的抽象,关系是把事物结合在一起,图聚集了相关的事物 UML中有九种图如下: ...
- C:Wordpress自定义文章类型(图视频)
自定义文章类型,包括: 1:单独的"文章内容模板" 2:单独的"文章列表模板" 3:单独的"控制后台"(文章分类.添加文章) 创建自定义文章 ...
- [UML]UML系列——类图Class
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...
- UML学习(三)-----序列图
UML的模型中可分为两种,动态模型和静态模型.用例图.类图和对象图都是UML中的静态结构模型.而在UML系统动态模型的其中一种就是交互视图,它描述了执行系统功能的各个角色之间相互传递消息的顺序关系.序 ...
- UML动态模型图简单介绍
UML动态模型图描述了系统动态行为的各个方面,包括用例图.序列图.协作图.活动图和状态图.下面就每种图做一个简单介绍: 用例图 用例图描述系统外部的执行者与系统提供的用例之间的某种联系.所谓用例是指对 ...
随机推荐
- <Oracle Database>数据字典
数据字典 数据字典是由Oracle服务器创建和维护的一组只读的系统表,它存放了有关数据库和数据库对象的信息,Oracle服务器依赖这些信息来管理和维护Oracle数据库. 数据字典分为两大类:一种是基 ...
- 使用小技巧,让你高效使用Eclipse
1.自动完成--Eclipse有一个自动完成代码功能,快捷键是ctrl + space.当点击时就会弹出一个对话框,上面有与前后文相关的一些建议.只要有一个可能性,Eclipse就会替你完成. 2.快 ...
- Eclipse中设置jsp文字大小
- phpcms V9二次开发之联动菜单筛选 包括box字段的多选 单选 筛选教程
{php $theurl = "index.php?m=content&c=index&a=lists&catid=$catid";} {php $bran ...
- c1ctf2016 wp
web: 1.web萌新福利 没啥好说的,右键查看源码得key 2.you are not admin 一看题目,就想到http头修改,常见的x-forwarded-for,referer,host, ...
- centos 安装apache 和 php5.6
centos 安装 php5.6,安装前需要先安装数据库和apache 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel ...
- Hibernate component mapping
A Component is a containted object that is be persisted value type and not an entity.But you can emb ...
- 微信公共平台开发-(.net实现)2--ACCESSTOKEN值获得
成功的走出第一步后,我们紧接着趁热打铁开始下一步: 成为了开发者之后微信平台会给您AppId和AppSecret,在订阅号中是没有的,所以因该申请一下服务号, 若没有请注意上一篇http://www. ...
- [Xamarin] 簡單使用Fragment 靜態篇 (转帖)
新的Android 開發,非常會使用到Fragment,不過官方範例有點小複雜,對初學者來說有點難消化,所以就記錄一下心得,這邊部落格將使用靜態的方法使用Fragment,Fragment 有自己的生 ...
- 在UWP应用中加入Cortana语音指令集
本文介绍小娜语音指令集的使用场景,如何将UWP应用接入小娜的语音指令集,使用户直接通过小娜启动应用并使用应用中 一些轻量级的功能.文中以必应词典作为实例讲解必应词典UWP版本是如何接入小娜语音功能的. ...