{"id":269,"date":"2025-08-20T19:48:54","date_gmt":"2025-08-20T11:48:54","guid":{"rendered":"http:\/\/www.tgwttt.xyz\/?p=269"},"modified":"2025-11-24T16:38:15","modified_gmt":"2025-11-24T08:38:15","slug":"%e5%9b%be%e7%9a%84%e5%ae%9e%e7%8e%b0%e5%8f%8a%e5%85%b6%e5%ba%94%e7%94%a8","status":"publish","type":"post","link":"https:\/\/www.tgwttt.xyz\/?p=269","title":{"rendered":"\u56fe\u7684\u5b9e\u73b0\u53ca\u5176\u5e94\u7528"},"content":{"rendered":"\n<p>\u5b8c\u6210\u4ee3\u7801\u4ed3\u5e93\uff1a<a href=\"https:\/\/gitee.com\/tgwTTT\/data-structure\/tree\/master\/Gragh1\">https:\/\/gitee.com\/tgwTTT\/data-structure\/tree\/master\/Gragh1<\/a><\/p>\n\n\n\n<p>\u56fe\uff08Graph\uff09\u662f\u6570\u636e\u7ed3\u6784\u4e2d\u975e\u5e38\u91cd\u8981\u7684\u4e00\u7c7b\uff0c\u5e7f\u6cdb\u5e94\u7528\u4e8e\u7f51\u7edc\u3001\u5730\u56fe\u3001\u793e\u4ea4\u5173\u7cfb\u7b49\u573a\u666f\u3002\u672c\u6587\u7ed3\u5408\u5b9e\u9645\u4ee3\u7801\uff0c\u4ecb\u7ecd\u5982\u4f55\u7528 C++ \u5b9e\u73b0\u56fe\u53ca\u5176\u64cd\u4f5c<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e00\u3001\u90bb\u63a5\u77e9\u9635\u5b9e\u73b0<\/h2>\n\n\n\n<p>\u90bb\u63a5\u77e9\u9635\u7528\u4e00\u4e2a\u4e8c\u7ef4\u6570\u7ec4\u5b58\u50a8\u9876\u70b9\u4e4b\u95f4\u7684\u8fb9\u6743\u3002\u9002\u5408\u7a20\u5bc6\u56fe\uff0c\u67e5\u627e\u548c\u4fee\u6539\u8fb9\u6743\u65b9\u4fbf\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u9876\u70b9\u548c\u8fb9\u7684\u5b58\u50a8<\/h3>\n\n\n\n<p>\u9876\u70b9\u7528\u00a0_vertexs\u00a0\u6570\u7ec4\u4fdd\u5b58\uff0c\u9876\u70b9\u5230\u4e0b\u6807\u7684\u6620\u5c04\u7528_indexMap\u00a0\u00a0\u5b9e\u73b0\u3002\u8fb9\u6743\u7528\u00a0_martix\u4e8c\u7ef4\u6570\u7ec4\u4fdd\u5b58\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vector<V> _vertexs;                 \/\/ \u9876\u70b9\u96c6\u5408\nvector<vector<W>> _matrix;          \/\/ \u90bb\u63a5\u77e9\u9635\nmap<V, int> _indexMap;              \/\/ \u9876\u70b9\u5230\u4e0b\u6807\u7684\u6620\u5c04<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u6dfb\u52a0\u8fb9<\/h3>\n\n\n\n<p>\u901a\u8fc7\u9876\u70b9\u540d\u67e5\u627e\u4e0b\u6807\uff0c\u7136\u540e\u8bbe\u7f6e\u77e9\u9635\u5bf9\u5e94\u4f4d\u7f6e\u7684\u6743\u503c\u3002\u65e0\u5411\u56fe\u9700\u5bf9\u79f0\u8d4b\u503c\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void AddEdge(const V& src, const V& dst, const W& w) {\n    size_t i = GetVertexIndex(src);\n    size_t j = GetVertexIndex(dst);\n    _matrix[i][j] = w;\n    if (!Direction) _matrix[j][i] = w; \/\/ \u65e0\u5411\u56fe\n}<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u56fe\u7684\u904d\u5386<br>\u4ee5\u5e7f\u5ea6\u4f18\u5148\u904d\u5386\uff08BFS\uff09\u4e3a\u4f8b\uff0c\u5229\u7528\u961f\u5217\u548c\u8bbf\u95ee\u6807\u8bb0\u6570\u7ec4\u5b9e\u73b0\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>void BFS(const V& src) {\n    size_t i = GetVertexIndex(src);\n    queue<int> q;\n    vector<bool> visit(_vertexs.size(), false);\n    q.push(i); visit[i] = true;\n    while (!q.empty()) {\n        int front = q.front(); q.pop();\n        cout << _vertexs[front] << \" \";\n        for (int j = 0; j < _matrix[front].size(); j++) {\n            if (_matrix[front][j] != INT_MAX &#038;&#038; !visit[j]) {\n                q.push(j); visit[j] = true;\n            }\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e8c\u3001\u90bb\u63a5\u8868\u5b9e\u73b0<\/h2>\n\n\n\n<p>\u90bb\u63a5\u8868\u9002\u5408\u7a00\u758f\u56fe\uff0c\u7a7a\u95f4\u6548\u7387\u9ad8\u3002\u6bcf\u4e2a\u9876\u70b9\u7ef4\u62a4\u4e00\u4e2a\u94fe\u8868\uff0c\u5b58\u50a8\u6240\u6709\u76f8\u90bb\u8fb9\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u7ed3\u6784\u8bbe\u8ba1<\/h3>\n\n\n\n<p>\u6bcf\u4e2a\u9876\u70b9\u5bf9\u5e94\u4e00\u4e2a\u94fe\u8868\u5934\u6307\u9488\uff0c\u94fe\u8868\u8282\u70b9\u4fdd\u5b58\u76ee\u6807\u9876\u70b9\u4e0b\u6807\u548c\u6743\u503c\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>struct Edge {\n    int _dsci;    \/\/ \u76ee\u6807\u9876\u70b9\u4e0b\u6807\n    W _w;         \/\/ \u6743\u503c\n    Edge* _next;  \/\/ \u4e0b\u4e00\u4e2a\u8fb9\n};\nvector<Edge*> _tables; \/\/ \u90bb\u63a5\u8868<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u6dfb\u52a0\u8fb9<\/h3>\n\n\n\n<p>\u63d2\u5165\u94fe\u8868\u5934\u90e8\uff0c\u82e5\u4e3a\u65e0\u5411\u56fe\u5219\u5bf9\u79f0\u63d2\u5165\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void AddEdge(const V& src, const V& dst, const W& w) {\n    size_t i = GetVertexIndex(src);\n    size_t j = GetVertexIndex(dst);\n    Edge *eg = new Edge(j, w);\n    eg->_next = _tables[i];\n    _tables[i] = eg;\n    if (!Direction) {\n        Edge *eg2 = new Edge(i, w);\n        eg2->_next = _tables[j];\n        _tables[j] = eg2;\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u904d\u5386\u7b97\u6cd5<\/h3>\n\n\n\n<p>\u90bb\u63a5\u8868\u7684 BFS \u548c DFS \u53ea\u9700\u904d\u5386\u94fe\u8868\u5373\u53ef\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void BFS(const V& src) {\n    size_t i = GetVertexIndex(src);\n    queue<int> q;\n    vector<bool> visit(_vertexs.size(), false);\n    q.push(i); visit[i] = true;\n    while (!q.empty()) {\n        int front = q.front(); q.pop();\n        cout << _vertexs[front] << \" \";\n        Edge* vt = _tables[front];\n        while (vt) {\n            if (!visit[vt->_dsci]) {\n                q.push(vt->_dsci); visit[vt->_dsci] = true;\n            }\n            vt = vt->_next;\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p><strong>\u6700\u5c0f\u751f\u6210\u6811<\/strong>\uff1a<\/p>\n\n\n\n<p>\u4ee5\u90bb\u63a5\u77e9\u9635\u4e3a\u4f8b\uff1a<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Kruskal\u7b97\u6cd5<\/h3>\n\n\n\n<p>\u6838\u5fc3\u601d\u8def\uff1a\u5148\u628a\u6240\u6709\u8fb9\u6309\u6743\u503c\u4ece\u5c0f\u5230\u5927\u6392\u5e8f\uff0c\u7136\u540e\u7528\u5e76\u67e5\u96c6\u5224\u65ad\u662f\u5426\u5f62\u6210\u73af\uff0c\u9010\u6b65\u9009\u53d6\u6700\u5c0f\u8fb9\uff0c\u76f4\u5230\u6240\u6709\u9876\u70b9\u8fde\u901a\u3002<\/p>\n\n\n\n<p>      1. \u6240\u6709\u8fb9\u5165\u4f18\u5148\u961f\u5217\uff08\u5c0f\u9876\u5806\uff09<\/p>\n\n\n\n<p>\u00a0 \u00a0   2. \u5e76\u67e5\u96c6\u5224\u65ad\u662f\u5426\u6210\u73af<\/p>\n\n\n\n<p>\u00a0 \u00a0   3. \u9009\u8fb9\u52a0\u5165\u6700\u5c0f\u751f\u6210\u6811<\/p>\n\n\n\n<p>\u00a0 \u00a0  4. \u76f4\u5230\u9009\u591f n-1 \u6761\u8fb9<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>W Kruskal(Self& minTree) const\n\t\t{\n\t\t\tconst size_t n = _vertexs.size();\n\t\t\tif (n == 0) return W();                \n\t\t\tstd::priority_queue<Edge,\n\t\t\t\tstd::vector<Edge>,\n\t\t\t\tstd::greater<Edge>> minq;\n\n\t\t\t\n\t\t\tfor (size_t i = 0; i < n; ++i)\n\t\t\t\tfor (size_t j = 0; j < n; ++j)\n\t\t\t\t\tif (i < j &#038;&#038; _matrix[i][j] != MAX_W)\n\t\t\t\t\t\tminq.emplace(i, j, _matrix[i][j]);\n\n\t\t\t\n\t\t\tstd::vector<int> ufs(n, -1);\n\t\t\tauto find = [&ufs](int x)\n\t\t\t\t{\n\t\t\t\t\twhile (ufs[x] >= 0) x = ufs[x];\n\t\t\t\t\treturn x;\n\t\t\t\t};\n\n\t\t\tW totalW = W();   \n\t\t\tsize_t cnt = 0;    \n\n\t\t\twhile (!minq.empty() && cnt < n - 1)\n\t\t\t{\n\t\t\t\tEdge e = minq.top(); minq.pop();\n\t\t\t\tint r1 = find(static_cast<int>(e._srci));\n\t\t\t\tint r2 = find(static_cast<int>(e._dsti));\n\t\t\t\tif (r1 != r2)            \n\t\t\t\t{\n\t\t\t\t\tif (ufs[r1] > ufs[r2]) std::swap(r1, r2);\n\t\t\t\t\tufs[r1] += ufs[r2];\n\t\t\t\t\tufs[r2] = r1;\n\t\t\t\t\t\n\t\t\t\t\tminTree._AddEdge(e._srci, e._dsti, e._w);\n\t\t\t\t\ttotalW += e._w;\n\t\t\t\t\t++cnt;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn cnt == n - 1 ? totalW : W(); 0\n\t\t}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Prim\u7b97\u6cd5<\/h3>\n\n\n\n<p>\u6838\u5fc3\u601d\u8def\uff1a\u4ece\u4e00\u4e2a\u9876\u70b9\u51fa\u53d1\uff0c\u6bcf\u6b21\u9009\u53d6\u8fde\u63a5\u5230\u5df2\u9009\u96c6\u5408\u7684\u6700\u5c0f\u6743\u503c\u8fb9\uff0c\u76f4\u5230\u6240\u6709\u9876\u70b9\u90fd\u88ab\u8986\u76d6\u3002<\/p>\n\n\n\n<p>      1. \u7528\u96c6\u5408 x \u8bb0\u5f55\u5df2\u9009\u9876\u70b9\uff0cy \u8bb0\u5f55\u672a\u9009\u9876\u70b9<\/p>\n\n\n\n<p>\u00a0 \u00a0   2. \u6bcf\u6b21\u4ece x \u5230 y \u7684\u8fb9\u9009\u6700\u5c0f\u6743\u503c<\/p>\n\n\n\n<p>\u00a0 \u00a0   3. \u52a0\u5165\u6700\u5c0f\u751f\u6210\u6811<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>W Prime(Self&minTree,const V&src)\n\t\t{\n\t\t\tsize_t srci = GetVertexIndex(src);\n\t\t\tsize_t n = _vertexs.size();\n\t\t\tminTree._indexMap = this->_indexMap;\n\t\t\tminTree._vertexs = this->_vertexs;\n\t\t\tminTree._matrix.resize(n);\n\t\t\tfor (int i = 0; i < n; i++) {\n\t\t\t\tminTree._matrix[i].resize(n, MAX_W);\n\t\t\t}\n\t\t\tset<int>x;\n\t\t\tset<int>y;\n\t\t\tx.insert(srci);\n\t\t\tfor (int i = 0; i < n; i++) {\n\t\t\t\tif (i != srci)y.insert(i);\n\t\t\t}\n\t\t\t\n\t\t\tpriority_queue<Edge, vector<Edge>, greater<Edge>>minq;\n\t\t\t\n\t\t\tfor (int i = 0; i < n; i++) {\n\t\t\t\tif (_matrix[srci][i] != MAX_W) {\n\t\t\t\t\tminq.push(Edge(srci, i, _matrix[srci][i]));\n\t\t\t\t}\n\t\t\t}\n\t\t\tsize_t k= 0;\n\t\t\tW totalw = W();\n\t\t\twhile (!minq.empty()) {\n\t\t\t\tEdge min = minq.top();\n\t\t\t\tminq.pop();\n\t\t\t\tif (x.count(min._dsti) == 1 &#038;&#038; x.count(min._srci) == 1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tminTree._AddEdge(min._srci, min._dsti, min._w);\n\t\t\t\tx.insert(min._dsti);\n\t\t\t\ty.erase(min._dsti);\n\t\t\t\tk++;\n\t\t\t\ttotalw += min._w;\n\t\t\t\tif (k == n - 1)break;\n\t\t\t\tfor (int i = 0; i < n; i++) {\n\t\t\t\t\tif (_matrix[min._dsti][i] != MAX_W&#038;&#038;x.count(i)==0) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tminq.push(Edge(min._dsti, i, _matrix[min._dsti][i]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (k == n - 1) {\n\t\t\t\treturn totalw;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn W();\n\t\t\t}\n\t\t}<\/code><\/pre>\n\n\n\n<p><strong>\u6700\u77ed\u8def\u5f84\u5b9e\u73b0<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Dijkstra\u7b97\u6cd5<\/h3>\n\n\n\n<p>\u6838\u5fc3\u601d\u8def\uff1a\u6bcf\u6b21\u9009\u53d6\u672a\u8bbf\u95ee\u9876\u70b9\u4e2d\u8ddd\u79bb\u6e90\u70b9\u6700\u8fd1\u7684\u9876\u70b9\uff0c\u66f4\u65b0\u5176\u90bb\u5c45\u7684\u6700\u77ed\u8ddd\u79bb\uff0c\u76f4\u5230\u6240\u6709\u9876\u70b9\u90fd\u88ab\u8bbf\u95ee\u3002<\/p>\n\n\n\n<p>       1. \u521d\u59cb\u5316 dist \u548c parentPath<\/p>\n\n\n\n<p>\u00a0 \u00a0    2. \u6bcf\u6b21\u9009\u6700\u8fd1\u7684\u9876\u70b9 u<\/p>\n\n\n\n<p>\u00a0 \u00a0    3. \u7528 u \u66f4\u65b0\u6240\u6709\u90bb\u5c45\u7684\u8ddd\u79bb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void Dijkstra(const V& src, vector<W>& dist, vector<int>& parentPath)\n\t\t{\n\t\t\tsize_t N = _vertexs.size();\n\t\t\tsize_t srci = GetVertexIndex(src);\n\t\t\t\n\t\t\tdist.resize(N, MAX_W);\n\t\t\t\n\t\t\tparentPath.resize(N, -1);\n\t\t\t\n\t\t\tvector<bool> S;\n\t\t\tS.resize(N, false);\n\t\t\t\n\t\t\tdist[srci] = W()\uff1b\n\t\t\tfor (size_t i = 0; i < N; ++i)\n\t\t\t{\n\n\t\t\t\tW min = MAX_W;\n\t\t\t\tsize_t u = srci;\n\t\t\t\tfor (size_t j = 0; j < N; ++j)\n\t\t\t\t{\n\t\t\t\t\tif (S[j] == false &#038;&#038; dist[j] < min)\n\t\t\t\t\t{\n\t\t\t\t\t\tmin = dist[j];\n\t\t\t\t\t\tu = j;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tS[u] = true;\n\t\t\t\t\n\t\t\t\tfor (size_t k = 0; k < N; ++k)\n\t\t\t\t{\n\t\t\t\t\t\n\t\t\t\t\t\tif (S[k] == false &#038;&#038; _matrix[u][k] != MAX_W\n\t\t\t\t\t\t\t&#038;&#038; dist[u] + _matrix[u][k] < dist[k])\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdist[k] = dist[u] + _matrix[u][k];\n\t\t\t\t\t\t\tparentPath[k] = u;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Floyd-Warshall\u7b97\u6cd5<\/h3>\n\n\n\n<p>\u6838\u5fc3\u601d\u8def\uff1a\u4e09\u91cd\u5faa\u73af\uff0c\u679a\u4e3e\u6240\u6709\u9876\u70b9\u5bf9\uff0c\u5c1d\u8bd5\u7528\u6bcf\u4e2a\u9876\u70b9\u4f5c\u4e3a\u4e2d\u8f6c\u70b9\u66f4\u65b0\u6700\u77ed\u8def\u5f84\u3002<\/p>\n\n\n\n<p>\u00a0      1. \u521d\u59cb\u5316\u6240\u6709\u9876\u70b9\u5bf9\u7684\u8ddd\u79bb<\/p>\n\n\n\n<p>\u00a0 \u00a0    2. \u679a\u4e3e\u4e2d\u8f6c\u70b9 k\uff0c\u5c1d\u8bd5\u66f4\u65b0 i \u5230 j \u7684\u6700\u77ed\u8def\u5f84<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void FloydWarShall(vector<vector<W>>& vvDist, vector<vector<int>>&\n\t\t\tvvParentPath)\n\t\t{\n\t\t\tsize_t N = _vertexs.size();\n\t\t\tvvDist.resize(N);\n\t\t\tvvParentPath.resize(N);\n\t\t\n\t\t\t\tfor (size_t i = 0; i < N; ++i)\n\t\t\t\t{\n\t\t\t\t\tvvDist[i].resize(N, MAX_W);\n\t\t\t\t\tvvParentPath[i].resize(N, -1);\n\t\t\t\t}\n\t\t\t\n\t\t\tfor (size_t i = 0; i < N; ++i)\n\t\t\t{\n\t\t\t\tfor (size_t j = 0; j < N; ++j)\n\t\t\t\t{\n\t\t\t\t\tif (_matrix[i][j] != MAX_W)\n\t\t\t\t\t{\n\t\t\t\t\t\tvvDist[i][j] = _matrix[i][j];\n\t\t\t\t\t\tvvParentPath[i][j] = i;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tvvParentPath[i][j] = -1;\n\t\t\t\t\t}\n\t\t\t\t\tif (i == j)\n\t\t\t\t\t{\n\t\t\t\t\t\tvvDist[i][j] = 0;\n\t\t\t\t\t\tvvParentPath[i][j] = -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (size_t k = 0; k < N; ++k)\n\t\t\t{\n\t\t\t\tfor (size_t i = 0; i < N; ++i)\n\t\t\t\t{\n\t\t\t\t\tfor (size_t j = 0; j < N; ++j)\n\t\t\t\t\t{\n\t\t\t\t\t\n\t\t\t\t\t\tif (vvDist[i][k] != MAX_W &#038;&#038; vvDist[k][j] != MAX_W\n\t\t\t\t\t\t\t&#038;&#038; vvDist[i][k] + vvDist[k][j] < vvDist[i][j])\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvvDist[i][j] = vvDist[i][k] + vvDist[k][j];\n\t\t\t\t\t\t\tvvParentPath[i][j] = vvParentPath[k][j];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/for (size_t i = 0; i < N; ++i)\n\t\t\t\t\/\/{\n\t\t\t\t\/\/ for (size_t j = 0; j < N; ++j)\n\t\t\t\t\/\/ {\n\t\t\t\t\/\/ if (vvDist[i][j] == MAX_W)\n\t\t\t\t\/\/ {\n\t\t\t\t\/\/ \/\/cout << \"*\" << \" \";\n\t\t\t\t\/\/ printf(\"%3c\", '*');\n\t\t\t\t\/\/ }\n\t\t\t\t\/\/ else\n\t\t\t\t\t\/\/ {\n\t\t\t\t\t\/\/ \/\/cout << vvDist[i][j] << \" \";\n\t\t\t\t\t\/\/ printf(\"%3d\", vvDist[i][j]);\n\t\t\t\t\t\/\/ }\n\t\t\t\t\t\/\/ }\n\t\t\t\t\t\/\/ cout << endl;\n\t\t\t\t\t\/\/}\n\t\t\t\t\t\/\/cout << endl;\n\t\t\t\t\t\/\/for (size_t i = 0; i < N; ++i)\n\t\t\t\t\t\/\/{\n\t\t\t\t\t\/\/ for (size_t j = 0; j < N; ++j)\n\t\t\t\t\t\/\/ {\n\t\t\t\t\t\/\/ \/\/cout << vvParentPath[i][j] << \" \";\n\t\t\t\t\t\/\/ printf(\"%3d\", vvParentPath[i][j]);\n\t\t\t\t\t\/\/ }\n\t\t\t\t\t\/\/ cout << endl;\n\t\t\t\t\t\/\/}\n\t\t\t\t\t\/\/cout << \"=================================\" << endl;\n\t\t\t}\n\t\t}<\/code><\/pre>\n\n\n\n<p>\u4eca\u5929\u7684\u66f4\u65b0\u5c31\u5230\u8fd9\u91cc\u4e86\uff0c\u5982\u6709\u9519\u8bef\u6b22\u8fce\u8bc4\u8bba\u533a\u6307\u51fa<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5b8c\u6210\u4ee3\u7801\u4ed3\u5e93\uff1ahttps:\/\/gitee.com\/tgwTTT\/data-structure\/tree\/mas&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[4,6],"tags":[],"class_list":["post-269","post","type-post","status-publish","format-standard","hentry","category-c","category-6"],"_links":{"self":[{"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=\/wp\/v2\/posts\/269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=269"}],"version-history":[{"count":4,"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=\/wp\/v2\/posts\/269\/revisions"}],"predecessor-version":[{"id":848,"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=\/wp\/v2\/posts\/269\/revisions\/848"}],"wp:attachment":[{"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tgwttt.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}