{"id":1650,"date":"2026-05-30T00:37:25","date_gmt":"2026-05-29T16:37:25","guid":{"rendered":"http:\/\/wordpress.fangt.online\/?p=1650"},"modified":"2026-05-30T00:37:25","modified_gmt":"2026-05-29T16:37:25","slug":"%e6%89%8b%e5%86%99%e9%93%be%e8%a1%a8%e5%ae%9e%e6%93%8d%e4%bb%a3%e7%a0%81","status":"publish","type":"post","link":"http:\/\/wordpress.fangt.online\/index.php\/2026\/05\/30\/%e6%89%8b%e5%86%99%e9%93%be%e8%a1%a8%e5%ae%9e%e6%93%8d%e4%bb%a3%e7%a0%81\/","title":{"rendered":"\u624b\u5199\u94fe\u8868\u5b9e\u64cd\u4ee3\u7801"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u5355\u94fe\u8868<\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>#include &lt;iostream>\nusing namespace std;\n\n\/\/ \u8282\u70b9\u5b9a\u4e49\nstruct SNode {\n    int data;\n    SNode* next;\n    SNode(int val) : data(val), next(nullptr) {}\n};\n\n\/\/ \u521d\u59cb\u5316\uff08\u521b\u5efa\u5934\u7ed3\u70b9\uff09\nSNode* initList() {\n    SNode* head = new SNode(0); \/\/ \u5934\u7ed3\u70b9\u4e0d\u5b58\u6570\u636e\n    head->next = nullptr;\n    return head;\n}\n\n\/\/ \u904d\u5386\u6253\u5370\nvoid traverse(SNode* head) {\n    SNode* p = head->next;\n    while (p) {\n        cout &lt;&lt; p->data &lt;&lt; \" \";\n        p = p->next;\n    }\n    cout &lt;&lt; endl;\n}\n\n\/\/ \u5934\u63d2\nvoid insertHead(SNode* head, int val) {\n    SNode* newNode = new SNode(val);\n    newNode->next = head->next;\n    head->next = newNode;\n}\n\n\/\/ \u5c3e\u63d2\nvoid insertTail(SNode* head, int val) {\n    SNode* newNode = new SNode(val);\n    SNode* p = head;\n    while (p->next) p = p->next;\n    p->next = newNode;\n}\n\n\/\/ \u6307\u5b9a\u4f4d\u7f6e\u63d2\u5165\uff08\u4f4d\u7f6e\u4ece1\u5f00\u59cb\uff0c\u5728pos\u4f4d\u7f6e\u524d\u63d2\u5165\uff09\nbool insertPos(SNode* head, int pos, int val) {\n    if (pos &lt; 1) return false;\n    SNode* p = head;\n    for (int i = 1; i &lt; pos; ++i) {\n        if (!p->next) return false; \/\/ \u4f4d\u7f6e\u8d85\u51fa\u94fe\u8868\u957f\u5ea6\n        p = p->next;\n    }\n    SNode* newNode = new SNode(val);\n    newNode->next = p->next;\n    p->next = newNode;\n    return true;\n}\n\n\/\/ \u5934\u5220\nbool deleteHead(SNode* head) {\n    if (!head->next) return false;\n    SNode* del = head->next;\n    head->next = del->next;\n    delete del;\n    return true;\n}\n\n\/\/ \u5c3e\u5220\nbool deleteTail(SNode* head) {\n    if (!head->next) return false;\n    SNode* p = head;\n    while (p->next &amp;&amp; p->next->next) p = p->next;\n    SNode* del = p->next;\n    p->next = nullptr;\n    delete del;\n    return true;\n}\n\n\/\/ \u6309\u503c\u5220\u9664\u7b2c\u4e00\u4e2a\u5339\u914d\u8282\u70b9\nbool deleteByValue(SNode* head, int val) {\n    SNode* p = head;\n    while (p->next &amp;&amp; p->next->data != val) p = p->next;\n    if (!p->next) return false;\n    SNode* del = p->next;\n    p->next = del->next;\n    delete del;\n    return true;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u53cc\u94fe\u8868\uff08\u5e26\u5934\u7ed3\u70b9\uff09<\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>#include &lt;iostream>\nusing namespace std;\n\n\/\/ \u8282\u70b9\u5b9a\u4e49\nstruct DNode {\n    int data;\n    DNode* prev;\n    DNode* next;\n    DNode(int val) : data(val), prev(nullptr), next(nullptr) {}\n};\n\n\/\/ \u521d\u59cb\u5316\nDNode* initList() {\n    DNode* head = new DNode(0);\n    head->prev = head->next = nullptr;\n    return head;\n}\n\n\/\/ \u904d\u5386\uff08\u6b63\u5411\uff09\nvoid traverse(DNode* head) {\n    DNode* p = head->next;\n    while (p) {\n        cout &lt;&lt; p->data &lt;&lt; \" \";\n        p = p->next;\n    }\n    cout &lt;&lt; endl;\n}\n\n\/\/ \u5934\u63d2\nvoid insertHead(DNode* head, int val) {\n    DNode* newNode = new DNode(val);\n    newNode->next = head->next;\n    if (head->next) head->next->prev = newNode;\n    head->next = newNode;\n    newNode->prev = head;\n}\n\n\/\/ \u5c3e\u63d2\nvoid insertTail(DNode* head, int val) {\n    DNode* newNode = new DNode(val);\n    DNode* p = head;\n    while (p->next) p = p->next;\n    p->next = newNode;\n    newNode->prev = p;\n}\n\n\/\/ \u6307\u5b9a\u4f4d\u7f6e\u63d2\u5165\uff08\u4f4d\u7f6e\u4ece1\u5f00\u59cb\uff09\nbool insertPos(DNode* head, int pos, int val) {\n    if (pos &lt; 1) return false;\n    DNode* p = head;\n    for (int i = 1; i &lt; pos; ++i) {\n        if (!p->next) return false;\n        p = p->next;\n    }\n    DNode* newNode = new DNode(val);\n    newNode->next = p->next;\n    if (p->next) p->next->prev = newNode;\n    p->next = newNode;\n    newNode->prev = p;\n    return true;\n}\n\n\/\/ \u5934\u5220\nbool deleteHead(DNode* head) {\n    if (!head->next) return false;\n    DNode* del = head->next;\n    head->next = del->next;\n    if (del->next) del->next->prev = head;\n    delete del;\n    return true;\n}\n\n\/\/ \u5c3e\u5220\nbool deleteTail(DNode* head) {\n    if (!head->next) return false;\n    DNode* p = head;\n    while (p->next) p = p->next;\n    DNode* del = p;\n    p->prev->next = nullptr;\n    delete del;\n    return true;\n}\n\n\/\/ \u6309\u503c\u5220\u9664\u7b2c\u4e00\u4e2a\u5339\u914d\u8282\u70b9\nbool deleteByValue(DNode* head, int val) {\n    DNode* p = head->next;\n    while (p &amp;&amp; p->data != val) p = p->next;\n    if (!p) return false;\n    p->prev->next = p->next;\n    if (p->next) p->next->prev = p->prev;\n    delete p;\n    return true;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u5355\u5faa\u73af\u94fe\u8868\uff08\u5e26\u5934\u7ed3\u70b9\uff0c\u5c3enext\u6307\u5411\u5934\u7ed3\u70b9\uff09<\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>#include &lt;iostream>\nusing namespace std;\n\nstruct CSNode {\n    int data;\n    CSNode* next;\n    CSNode(int val) : data(val), next(nullptr) {}\n};\n\n\/\/ \u521d\u59cb\u5316\uff1a\u5934\u7ed3\u70b9\u81ea\u5df1\u5faa\u73af\nCSNode* initList() {\n    CSNode* head = new CSNode(0);\n    head->next = head;   \/\/ \u7a7a\u94fe\u8868\u65f6\u5934\u7ed3\u70b9\u6307\u5411\u81ea\u8eab\n    return head;\n}\n\n\/\/ \u904d\u5386\uff08\u9700\u6ce8\u610f\u7ed3\u675f\u6761\u4ef6\uff0c\u56e0\u4e3a\u65e0NULL\uff09\nvoid traverse(CSNode* head) {\n    if (head->next == head) {\n        cout &lt;&lt; \"Empty\" &lt;&lt; endl;\n        return;\n    }\n    CSNode* p = head->next;\n    while (p != head) {\n        cout &lt;&lt; p->data &lt;&lt; \" \";\n        p = p->next;\n    }\n    cout &lt;&lt; endl;\n}\n\n\/\/ \u5934\u63d2\nvoid insertHead(CSNode* head, int val) {\n    CSNode* newNode = new CSNode(val);\n    newNode->next = head->next;\n    head->next = newNode;\n}\n\n\/\/ \u5c3e\u63d2\uff08\u9700\u8981\u627e\u5230\u5c3e\u8282\u70b9\uff0c\u5373pre=head\u7684\u8282\u70b9\uff09\nvoid insertTail(CSNode* head, int val) {\n    CSNode* newNode = new CSNode(val);\n    CSNode* p = head;\n    while (p->next != head) p = p->next;\n    p->next = newNode;\n    newNode->next = head;\n}\n\n\/\/ \u6307\u5b9a\u4f4d\u7f6e\u63d2\u5165\uff08\u4f4d\u7f6e\u4ece1\u5f00\u59cb\uff0c\u5728pos\u524d\u63d2\u5165\uff09\nbool insertPos(CSNode* head, int pos, int val) {\n    if (pos &lt; 1) return false;\n    CSNode* p = head;\n    for (int i = 1; i &lt; pos; ++i) {\n        p = p->next;\n        if (p == head) return false; \/\/ \u8d85\u51fa\u957f\u5ea6\uff08\u5faa\u73af\u94fe\u8868\u9700\u6ce8\u610f\uff09\n    }\n    CSNode* newNode = new CSNode(val);\n    newNode->next = p->next;\n    p->next = newNode;\n    return true;\n}\n\n\/\/ \u5934\u5220\nbool deleteHead(CSNode* head) {\n    if (head->next == head) return false;\n    CSNode* del = head->next;\n    head->next = del->next;\n    delete del;\n    return true;\n}\n\n\/\/ \u5c3e\u5220\nbool deleteTail(CSNode* head) {\n    if (head->next == head) return false;\n    CSNode* p = head;\n    while (p->next->next != head) p = p->next;\n    CSNode* del = p->next;\n    p->next = head;\n    delete del;\n    return true;\n}\n\n\/\/ \u6309\u503c\u5220\u9664\u7b2c\u4e00\u4e2a\u5339\u914d\u8282\u70b9\uff08\u6ce8\u610f\u5faa\u73af\u94fe\u8868\u4e2d\u4e0d\u80fd\u5220\u5934\u7ed3\u70b9\uff09\nbool deleteByValue(CSNode* head, int val) {\n    if (head->next == head) return false;\n    CSNode* p = head;\n    while (p->next != head &amp;&amp; p->next->data != val) p = p->next;\n    if (p->next == head) return false;\n    CSNode* del = p->next;\n    p->next = del->next;\n    delete del;\n    return true;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u53cc\u5faa\u73af\u94fe\u8868\uff08\u5e26\u5934\u7ed3\u70b9\uff0cprev\u548cnext\u5747\u5faa\u73af\uff09<\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>#include &lt;iostream>\nusing namespace std;\n\nstruct CDNode {\n    int data;\n    CDNode* prev;\n    CDNode* next;\n    CDNode(int val) : data(val), prev(nullptr), next(nullptr) {}\n};\n\n\/\/ \u521d\u59cb\u5316\uff1a\u5934\u7ed3\u70b9\u81ea\u5df1\u53cc\u5411\u5faa\u73af\nCDNode* initList() {\n    CDNode* head = new CDNode(0);\n    head->prev = head;\n    head->next = head;\n    return head;\n}\n\n\/\/ \u904d\u5386\uff08\u6b63\u5411\uff09\nvoid traverse(CDNode* head) {\n    if (head->next == head) {\n        cout &lt;&lt; \"Empty\" &lt;&lt; endl;\n        return;\n    }\n    CDNode* p = head->next;\n    while (p != head) {\n        cout &lt;&lt; p->data &lt;&lt; \" \";\n        p = p->next;\n    }\n    cout &lt;&lt; endl;\n}\n\n\/\/ \u5934\u63d2\nvoid insertHead(CDNode* head, int val) {\n    CDNode* newNode = new CDNode(val);\n    newNode->next = head->next;\n    newNode->prev = head;\n    head->next->prev = newNode;\n    head->next = newNode;\n}\n\n\/\/ \u5c3e\u63d2\uff08\u5373\u5934\u7ed3\u70b9\u7684\u524d\u9a71\u5904\u63d2\u5165\uff09\nvoid insertTail(CDNode* head, int val) {\n    CDNode* newNode = new CDNode(val);\n    CDNode* tail = head->prev;\n    tail->next = newNode;\n    newNode->prev = tail;\n    newNode->next = head;\n    head->prev = newNode;\n}\n\n\/\/ \u6307\u5b9a\u4f4d\u7f6e\u63d2\u5165\uff08\u4f4d\u7f6e\u4ece1\u5f00\u59cb\uff09\nbool insertPos(CDNode* head, int pos, int val) {\n    if (pos &lt; 1) return false;\n    CDNode* p = head;\n    for (int i = 1; i &lt; pos; ++i) {\n        p = p->next;\n        if (p == head) return false;\n    }\n    CDNode* newNode = new CDNode(val);\n    newNode->next = p->next;\n    newNode->prev = p;\n    p->next->prev = newNode;\n    p->next = newNode;\n    return true;\n}\n\n\/\/ \u5934\u5220\nbool deleteHead(CDNode* head) {\n    if (head->next == head) return false;\n    CDNode* del = head->next;\n    head->next = del->next;\n    del->next->prev = head;\n    delete del;\n    return true;\n}\n\n\/\/ \u5c3e\u5220\nbool deleteTail(CDNode* head) {\n    if (head->next == head) return false;\n    CDNode* del = head->prev;\n    head->prev = del->prev;\n    del->prev->next = head;\n    delete del;\n    return true;\n}\n\n\/\/ \u6309\u503c\u5220\u9664\u7b2c\u4e00\u4e2a\u5339\u914d\u8282\u70b9\nbool deleteByValue(CDNode* head, int val) {\n    if (head->next == head) return false;\n    CDNode* p = head->next;\n    while (p != head &amp;&amp; p->data != val) p = p->next;\n    if (p == head) return false;\n    p->prev->next = p->next;\n    p->next->prev = p->prev;\n    delete p;\n    return true;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u5355\u94fe\u8868 \u53cc\u94fe\u8868\uff08\u5e26\u5934\u7ed3\u70b9\uff09 \u5355\u5faa\u73af\u94fe\u8868\uff08\u5e26\u5934\u7ed3\u70b9\uff0c\u5c3enext\u6307\u5411\u5934\u7ed3\u70b9\uff09 \u53cc\u5faa\u73af\u94fe\u8868\uff08\u5e26\u5934\u7ed3\u70b9\uff0cprev\u548cne [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61],"tags":[],"class_list":["post-1650","post","type-post","status-publish","format-standard","hentry","category-zl"],"_links":{"self":[{"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/posts\/1650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/comments?post=1650"}],"version-history":[{"count":1,"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/posts\/1650\/revisions"}],"predecessor-version":[{"id":1651,"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/posts\/1650\/revisions\/1651"}],"wp:attachment":[{"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/media?parent=1650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/categories?post=1650"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/wordpress.fangt.online\/index.php\/wp-json\/wp\/v2\/tags?post=1650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}