{"id":44263,"date":"2025-06-18T09:33:27","date_gmt":"2025-06-18T01:33:27","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/44263.html"},"modified":"2025-06-18T09:33:27","modified_gmt":"2025-06-18T01:33:27","slug":"leetcode-%e7%ae%97-%e6%b3%95-%e5%ae%9e-%e6%88%98-%e6%9c%89-%e6%95%88-%e7%9a%84-%e6%8b%ac-%e5%8f%b7%e3%80%81%e7%94%a8-%e9%98%9f-%e5%88%97-%e5%ae%9e-%e7%8e%b0-%e6%a0%88%e3%80%81%e7%94%a8-%e6%a0%88","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/44263.html","title":{"rendered":"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - - - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217"},"content":{"rendered":"<\/p>\n<h4>LeetCode \u7b97 \u6cd5 \u5b9e \u6218 &#8211; &#8211; &#8211; \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217<\/h4>\n<ul>\n<li>\u7b2c \u4e00 \u9898 &#8211; &#8211; &#8211; \u6709 \u6548 \u7684 \u62ec \u53f7<\/li>\n<li>\n<ul>\n<li>\u6808<\/li>\n<\/ul>\n<\/li>\n<li>\u7b2c \u4e8c \u9898 &#8211; &#8211; &#8211; \u7528 \u961f \u5217 \u5b9e \u73b0 \u6808<\/li>\n<li>\n<ul>\n<li>\u4e24 \u4e2a \u961f \u5217<\/li>\n<\/ul>\n<\/li>\n<li>\u7b2c \u4e09 \u9898 &#8211; &#8211; &#8211; \u7528 \u6808 \u5b9e \u73b0 \u961f \u5217<\/li>\n<li>\n<ul>\n<li>\u4e24 \u4e2a \u6808<\/li>\n<\/ul>\n<\/li>\n<li>\u7b2c \u56db \u9898 &#8211; &#8211; &#8211; \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217<\/li>\n<li>\n<ul>\n<li>\u5faa \u73af \u961f \u5217<\/li>\n<\/ul>\n<\/li>\n<li>\u603b \u7ed3<\/li>\n<\/ul>\n<p>&#x1f4bb;\u4f5c \u8005 \u7b80 \u4ecb&#xff1a;\u66fe \u4e0e \u4f60 \u4e00 \u6837 \u8ff7 \u832b&#xff0c;\u73b0 \u4ee5 \u7ecf \u9a8c \u52a9 \u4f60 \u5165 \u95e8 \u6570\u636e \u7ed3 \u6784\u3002 &#x1f4a1;\u4e2a \u4eba \u4e3b \u9875&#xff1a;&#064;\u7b11\u53e3\u5e38\u5f00xpr \u7684 \u4e2a \u4eba \u4e3b \u9875 &#x1f4da;\u7cfb \u5217 \u4e13 \u680f&#xff1a;\u786c \u6838 \u6570 \u636e \u7ed3 \u6784 \u4e0e \u7b97 \u6cd5 \u2728\u4ee3 \u7801 \u8da3 \u8bed&#xff1a;\u5728 \u5c0f \u7a0b \u5e8f \u53ef \u4ee5 \u5b8c \u6210 \u4efb \u52a1 \u7684 \u60c5 \u51b5 \u4e0b&#xff0c;\u6211 \u4eec \u5c31 \u6ca1 \u5fc5 \u8981 \u7f16 \u5199 \u5927 \u7a0b \u5e8f\u3002 &#x1f4aa;\u4ee3 \u7801 \u5343 \u884c&#xff0c;\u59cb \u4e8e \u575a \u6301&#xff0c;\u6bcf \u65e5 \u6572 \u7801&#xff0c;\u8fdb \u9636 \u7f16 \u7a0b \u4e4b \u8def\u3002 &#x1f4e6;gitee \u94fe \u63a5&#xff1a;gitee<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/06\/20250618013322-685217627b215.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5728 \u6570 \u636e \u7ed3 \u6784 \u7684 \u4e16 \u754c \u91cc&#xff0c;\u6bcf \u4e00 \u79cd \u8bbe \u8ba1 \u90fd \u53ef \u80fd \u5b55 \u80b2 \u51fa \u60ca \u4eba \u7684 \u6548 \u7387 \u53d8 \u9769\u3002\u4f60 \u662f \u5426 \u6df1 \u601d \u8fc7&#xff0c;\u4e00 \u7ec4 \u7cbe \u5fc3 \u7ec4 \u7ec7 \u7684 \u6570 \u636e \u7a76 \u7adf \u80fd \u521b \u9020 \u600e \u6837 \u7684 \u5947 \u8ff9&#xff1f;\u6bcf \u4e00 \u6b21 \u6316 \u6398 \u5e95 \u5c42 \u539f \u7406&#xff0c;\u90fd \u662f \u4e0e \u8ba1 \u7b97 \u673a \u667a \u6167 \u7684 \u5dc5 \u5cf0 \u5bf9 \u8bdd&#xff1b;\u6bcf \u4e00 \u6b21 \u5256 \u6790 \u5b58 \u50a8 \u6a21 \u5f0f&#xff0c;\u90fd \u5728 \u7834 \u89e3 \u6570 \u636e \u4e16 \u754c \u7684 \u7ec8 \u6781 \u5bc6 \u7801\u3002\u51c6 \u5907 \u597d \u8fce \u63a5 \u8fd9 \u573a \u76db \u5bb4 \u4e86 \u5417&#xff1f;\u8ba9 \u6211 \u4eec \u4e00 \u540c \u63a2 \u5bfb \u6808 \u548c \u961f \u5217 \u7684 \u65e0 \u5c3d \u5965 \u79d8&#xff0c;\u89c1 \u8bc1 \u5b83 \u5982 \u4f55 \u91cd \u5851 \u6570 \u5b57 \u65f6 \u4ee3 \u7684 \u8fd0 \u884c \u6cd5 \u5219&#xff01;<\/p>\n<hr \/>\n<h2>\u7b2c \u4e00 \u9898 &#8211; &#8211; &#8211; \u6709 \u6548 \u7684 \u62ec \u53f7<\/h2>\n<p>\u6709 \u6548 \u7684 \u62ec \u53f7<\/p>\n<hr \/>\n<p>\u63cf \u8ff0 &#xff1a;\u7ed9 \u5b9a \u4e00 \u4e2a \u53ea \u5305 \u62ec \u2018(\u2019&#xff0c;\u2018)\u2019&#xff0c;\u2018{\u2019&#xff0c;\u2018}\u2019&#xff0c;\u2018[\u2019&#xff0c;\u2018]\u2019 \u7684 \u5b57 \u7b26 \u4e32 s&#xff0c;\u5224 \u65ad \u5b57 \u7b26 \u4e32 \u662f \u5426 \u6709 \u6548\u3002<\/p>\n<p>\u6709 \u6548 \u5b57 \u7b26 \u4e32 \u9700 \u6ee1 \u8db3&#xff1a;<\/p>\n<p>\u5de6 \u62ec \u53f7 \u5fc5 \u987b \u7528 \u76f8 \u540c \u7c7b \u578b \u7684 \u53f3 \u62ec \u53f7 \u95ed \u5408\u3002 \u5de6 \u62ec \u53f7 \u5fc5 \u987b \u4ee5 \u6b63 \u786e \u7684 \u987a \u5e8f \u95ed \u5408\u3002 \u6bcf \u4e2a \u53f3 \u62ec \u53f7 \u90fd \u6709 \u4e00 \u4e2a \u5bf9 \u5e94 \u7684 \u76f8 \u540c \u7c7b \u578b \u7684 \u5de6 \u62ec \u53f7\u3002<\/p>\n<p>\u793a \u4f8b 1&#xff1a; \u8f93 \u5165&#xff1a;s &#061; \u201c()\u201d \u8f93 \u51fa&#xff1a;true<\/p>\n<p>\u793a \u4f8b 2&#xff1a; \u8f93 \u5165&#xff1a;s &#061; \u201c()[]{}\u201d \u8f93 \u51fa&#xff1a;true<\/p>\n<p>\u793a \u4f8b 3&#xff1a; \u8f93 \u5165&#xff1a;s &#061; \u201c(]\u201d \u8f93 \u51fa&#xff1a;false<\/p>\n<p>\u793a \u4f8b 4&#xff1a; \u8f93 \u5165&#xff1a;s &#061; \u201c([])\u201d \u8f93 \u51fa&#xff1a;true<\/p>\n<p>\u63d0 \u793a&#xff1a; 1 &lt;&#061; s.length &lt;&#061; 104 s \u4ec5 \u7531 \u62ec \u53f7 \u2018()[]{}\u2019 \u7ec4 \u6210<\/p>\n<hr \/>\n<h3>\u6808<\/h3>\n<hr \/>\n<p>\u601d \u8def \u5206 \u6790 \u9047 \u5230 \u5de6 \u62ec \u53f7&#xff1a;\u76f4 \u63a5 \u5165 \u6808\u3002<\/p>\n<p>\u9047 \u5230 \u53f3 \u62ec \u53f7&#xff1a; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u82e5 \u6808 \u4e3a \u7a7a&#xff0c;\u8bf4 \u660e \u53f3 \u62ec \u53f7 \u6ca1 \u6709 \u5bf9 \u5e94 \u7684 \u5de6 \u62ec \u53f7&#xff0c;\u5339 \u914d \u5931 \u8d25\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u82e5 \u6808 \u9876 \u5143 \u7d20 \u4e0e \u5f53 \u524d \u53f3 \u62ec \u53f7 \u4e0d \u5339 \u914d&#xff08;\u5982 ] \u5bf9 \u5e94 [ &#xff09;&#xff0c;\u5339 \u914d \u5931 \u8d25\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u82e5 \u5339 \u914d \u6210 \u529f&#xff0c;\u5219 \u5f39 \u51fa \u6808 \u9876 \u5143 \u7d20\u3002<\/p>\n<p>\u904d \u5386 \u7ed3 \u675f \u540e&#xff1a;\u82e5 \u6808 \u4e3a \u7a7a&#xff0c;\u8bf4 \u660e \u6240 \u6709 \u62ec \u53f7 \u90fd \u5339 \u914d \u6210 \u529f&#xff1b;\u5426 \u5219 \u5339 \u914d \u5931 \u8d25\u3002<\/p>\n<hr \/>\n<p>\u6e29 \u99a8 \u63d0 \u793a&#xff1a;\u8bfb \u8005 \u4eec &#xff0c;\u5148 \u81ea \u5df1 \u5199 \u4ee3 \u7801&#xff0c;\u8fd9 \u662f \u63d0 \u5347 \u7f16 \u7a0b \u80fd \u529b \u7684 \u597d \u673a \u4f1a\u3002\u82e5 \u672a \u8fbe \u8981 \u6c42 &#xff0c;\u522b \u6c14 \u9981 &#xff0c;\u53c2 \u8003 \u4e0b \u6587 \u89e3 \u91ca \u4f1a \u6709 \u65b0 \u6536 \u83b7\u3002<\/p>\n<p>\u4e0b \u9762 \u5c55 \u793a\u4ee3 \u7801 \u793a \u4f8b\u3002<\/p>\n<p>typedef char STDataType<span class=\"token punctuation\">;<\/span><br \/>\ntypedef struct Stack <span class=\"token punctuation\">{<\/span><br \/>\n    STDataType<span class=\"token operator\">*<\/span> a<span class=\"token punctuation\">;<\/span><br \/>\n    int top<span class=\"token punctuation\">;<\/span><br \/>\n    int capacity<span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u5bb9\u91cf<\/span><br \/>\n<span class=\"token punctuation\">}<\/span> <span class=\"token constant\">ST<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/ \u521d\u59cb\u5316<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">STInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/ \u53ea\u80fd\u5728\u4e00\u7aef\u63d2\u5165,\u5373\u6808\u9876<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">STPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">,<\/span> STDataType x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">STPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nint <span class=\"token function\">STSize<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nbool <span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/ \u8bbf\u95ee\u6808\u9876\u5143\u7d20<\/span><br \/>\nSTDataType <span class=\"token function\">STTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">STInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>STDataType<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>STDataType<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">perror<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;ps-&gt;a&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ top\u662f\u6808\u9876\u5143\u7d20\u7684\u4e0b\u4e00\u4e2a\u4f4d\u7f6e<\/span><br \/>\n    <span class=\"token comment\">\/\/ ps-&gt;top &#061; -1;         \/\/top\u662f\u6808\u9876\u5143\u7d20<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">,<\/span> STDataType x<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;&#061;<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        STDataType<span class=\"token operator\">*<\/span> tmp <span class=\"token operator\">&#061;<\/span><br \/>\n            <span class=\"token punctuation\">(<\/span>STDataType<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">realloc<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">,<\/span> <span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>STDataType<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>tmp <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token function\">perror<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;realloc fail&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n        ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;<\/span> tmp<span class=\"token punctuation\">;<\/span><br \/>\n        ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">*&#061;<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">[<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> x<span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token operator\">&#8212;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>int <span class=\"token function\">STSize<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>bool <span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>STDataType <span class=\"token function\">STTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">[<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nbool <span class=\"token function\">isValid<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">char<span class=\"token operator\">*<\/span> s<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token constant\">ST<\/span> st<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">STInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>s<span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>s<span class=\"token operator\">&#061;&#061;<\/span><span class=\"token string\">&#039;(&#039;<\/span><span class=\"token operator\">||<\/span><span class=\"token operator\">*<\/span>s<span class=\"token operator\">&#061;&#061;<\/span><span class=\"token string\">&#039;[&#039;<\/span><span class=\"token operator\">||<\/span><span class=\"token operator\">*<\/span>s<span class=\"token operator\">&#061;&#061;<\/span><span class=\"token string\">&#039;{&#039;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/\u5165\u6808<\/span><br \/>\n            <span class=\"token function\">STPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">,<\/span><span class=\"token operator\">*<\/span>s<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token keyword\">else<\/span><br \/>\n        <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/\u51fa\u6808<\/span><br \/>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n            char top <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">STTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token function\">STPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>s<span class=\"token operator\">&#061;&#061;<\/span><span class=\"token string\">&#039;)&#039;<\/span><span class=\"token operator\">&amp;&amp;<\/span>top<span class=\"token operator\">!&#061;<\/span><span class=\"token string\">&#039;(&#039;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token operator\">||<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>s<span class=\"token operator\">&#061;&#061;<\/span><span class=\"token string\">&#039;]&#039;<\/span><span class=\"token operator\">&amp;&amp;<\/span>top<span class=\"token operator\">!&#061;<\/span><span class=\"token string\">&#039;[&#039;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token operator\">||<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>s<span class=\"token operator\">&#061;&#061;<\/span><span class=\"token string\">&#039;}&#039;<\/span><span class=\"token operator\">&amp;&amp;<\/span>top<span class=\"token operator\">!&#061;<\/span><span class=\"token string\">&#039;{&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n        s<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    bool ret <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>st<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> ret<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<hr \/>\n<p>\u4ee3 \u7801 \u5206 \u6790<\/p>\n<p>1\u3001\u6808 \u7684 \u5b9e \u73b0 \u521b \u5efa \u6808&#xff1a;\u4f7f \u7528 \u52a8 \u6001 \u6570 \u7ec4 \u5b9e \u73b0 \u6808&#xff0c;\u5305 \u542b \u6307 \u9488 a\u3001\u6808 \u9876 \u7d22 \u5f15 top \u548c \u5bb9 \u91cf capacity\u3002 \u521d \u59cb \u5316&#xff1a;\u5206 \u914d \u521d \u59cb \u5bb9 \u91cf&#xff08;4&#xff09;&#xff0c;top \u521d \u59cb \u5316 \u4e3a 0&#xff08;\u8868 \u793a \u6808 \u9876 \u7684 \u4e0b \u4e00 \u4e2a \u4f4d \u7f6e&#xff09;\u3002 \u5165 \u6808&#xff08;Push&#xff09;&#xff1a;\u68c0 \u67e5 \u662f \u5426 \u9700 \u8981 \u6269 \u5bb9&#xff0c;\u7136 \u540e \u5c06 \u5143 \u7d20 \u6dfb \u52a0 \u5230 \u6808 \u9876\u3002 \u51fa \u6808&#xff08;Pop&#xff09;&#xff1a;\u76f4 \u63a5 \u51cf \u5c0f top \u7d22 \u5f15&#xff0c;\u4e0d \u5b9e \u9645 \u5220 \u9664 \u5143 \u7d20\u3002 \u83b7 \u53d6 \u6808 \u9876 \u5143 \u7d20&#xff08;Top&#xff09;&#xff1a;\u8fd4 \u56de a[top-1]\u3002 \u9500 \u6bc1 \u6808&#xff1a;\u91ca \u653e \u52a8 \u6001 \u6570 \u7ec4 \u5185 \u5b58&#xff0c;\u91cd \u7f6e \u53c2 \u6570\u3002<\/p>\n<p>2\u3001\u62ec \u53f7 \u5339 \u914d \u904d \u5386 \u5b57 \u7b26 \u4e32&#xff1a; \u82e5 \u4e3a \u5de6 \u62ec \u53f7&#xff08;(, [, {&#xff09;&#xff0c;\u5165 \u6808\u3002 \u82e5 \u4e3a \u53f3 \u62ec \u53f7&#xff1a; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u82e5 \u6808 \u4e3a \u7a7a&#xff0c;\u8fd4 \u56de false\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5f39 \u51fa \u6808 \u9876 \u5143 \u7d20&#xff0c;\u68c0 \u67e5 \u662f \u5426 \u4e0e \u5f53 \u524d \u53f3 \u62ec \u53f7 \u5339 \u914d\u3002\u82e5 \u4e0d \u5339 \u914d &#xff0c;\u8fd4 \u56de false\u3002 \u7ed3 \u675f \u6761 \u4ef6 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u904d \u5386 \u5b8c \u6210 \u540e&#xff0c;\u82e5 \u6808 \u4e3a \u7a7a&#xff0c;\u8fd4 \u56de true&#xff1b;\u5426 \u5219 \u8fd4 \u56de false\u3002<\/p>\n<hr \/>\n<p>\u590d \u6742 \u5ea6 \u5206 \u6790 \u65f6 \u95f4 \u590d \u6742 \u5ea6&#xff1a;O(n)&#xff0c;\u5176 \u4e2d n \u662f \u5b57 \u7b26 \u4e32 \u957f \u5ea6\u3002\u6bcf \u4e2a \u5b57 \u7b26 \u4ec5 \u904d \u5386 \u4e00 \u6b21&#xff0c;\u6808 \u64cd \u4f5c \u7684 \u65f6 \u95f4 \u590d \u6742 \u5ea6 \u4e3a O(1)\u3002 \u7a7a \u95f4 \u590d \u6742 \u5ea6&#xff1a;O(n)&#xff0c;\u6700 \u574f \u60c5 \u51b5 \u4e0b \u6240 \u6709 \u5de6 \u62ec \u53f7 \u5165 \u6808&#xff0c;\u6808 \u7684 \u6df1 \u5ea6 \u4e3a n\u3002<\/p>\n<hr \/>\n<h2>\u7b2c \u4e8c \u9898 &#8211; &#8211; &#8211; \u7528 \u961f \u5217 \u5b9e \u73b0 \u6808<\/h2>\n<p>\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808<\/p>\n<hr \/>\n<p>\u63cf \u8ff0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u8bf7 \u4f60 \u4ec5 \u4f7f \u7528 \u4e24 \u4e2a \u961f \u5217 \u5b9e \u73b0 \u4e00 \u4e2a \u540e \u5165 \u5148 \u51fa&#xff08;LIFO&#xff09;\u7684 \u6808&#xff0c;\u5e76 \u652f \u6301 \u666e \u901a \u6808 \u7684 \u5168 \u90e8 \u56db \u79cd \u64cd \u4f5c&#xff08;push\u3001top\u3001pop \u548c empty&#xff09;\u3002<\/p>\n<p>\u5b9e \u73b0 MyStack \u7c7b&#xff1a; void push(int x) \u5c06 \u5143 \u7d20 x \u538b \u5165 \u6808 \u9876\u3002 int pop() \u79fb \u9664 \u5e76 \u8fd4 \u56de \u6808 \u9876 \u5143 \u7d20\u3002 int top() \u8fd4 \u56de \u6808 \u9876 \u5143 \u7d20\u3002 boolean empty() \u5982 \u679c \u6808 \u662f \u7a7a \u7684&#xff0c;\u8fd4 \u56de true&#xff1b;\u5426 \u5219&#xff0c;\u8fd4 \u56de false\u3002<\/p>\n<p>\u6ce8 \u610f&#xff1a; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u4f60 \u53ea \u80fd \u4f7f \u7528 \u961f \u5217 \u7684 \u6807 \u51c6 \u64cd \u4f5c \u2014\u2014 \u4e5f \u5c31 \u662f push to back\u3001peek\/pop from front\u3001size \u548c is empty \u8fd9 \u4e9b \u64cd \u4f5c\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u4f60 \u6240 \u4f7f \u7528 \u7684 \u8bed \u8a00 \u4e5f \u8bb8 \u4e0d \u652f \u6301 \u961f \u5217\u3002\u4f60 \u53ef \u4ee5 \u4f7f \u7528 list &#xff08;\u5217 \u8868&#xff09;\u6216 \u8005 deque&#xff08;\u53cc \u7aef \u961f \u5217&#xff09;\u6765 \u6a21 \u62df \u4e00 \u4e2a \u961f \u5217&#xff0c;\u53ea \u8981 \u662f \u6807 \u51c6 \u7684 \u961f \u5217 \u64cd \u4f5c \u5373 \u53ef\u3002<\/p>\n<p>\u793a \u4f8b&#xff1a; \u8f93 \u5165&#xff1a; [\u201cMyStack\u201d, \u201cpush\u201d, \u201cpush\u201d, \u201ctop\u201d, \u201cpop\u201d, \u201cempty\u201d] [[], [1], [2], [], [], []] \u8f93 \u51fa&#xff1a; [null, null, null, 2, 2, false] \u89e3 \u91ca&#xff1a; MyStack myStack &#061; new MyStack(); myStack.push(1); myStack.push(2); myStack.top(); \/\/\u8fd4 \u56de 2 myStack.pop(); \/\/\u8fd4 \u56de 2 myStack.empty(); \/\/\u8fd4 \u56de False<\/p>\n<p>\u63d0 \u793a&#xff1a; 1 &lt;&#061; x &lt;&#061; 9 \u6700 \u591a \u8c03 \u7528 100 \u6b21 push\u3001pop\u3001top \u548c empty \u6bcf \u6b21 \u8c03 \u7528 pop \u548c top \u90fd \u4fdd \u8bc1 \u6808 \u4e0d \u4e3a \u7a7a<\/p>\n<hr \/>\n<h3>\u4e24 \u4e2a \u961f \u5217<\/h3>\n<p>\u601d \u8def \u5206 \u6790 1\u3001\u6838 \u5fc3 \u8bbe \u8ba1 \u601d \u8def \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u4f7f \u7528 \u4e24 \u4e2a \u961f \u5217 \u6a21 \u62df \u6808 \u7684 \u5173 \u952e \u5728 \u4e8e \u51fa \u6808 \u64cd \u4f5c \u5165 \u6808&#xff1a;\u76f4 \u63a5 \u5c06 \u5143 \u7d20 \u6dfb \u52a0 \u5230 \u975e \u7a7a \u961f \u5217\u3002 \u51fa \u6808&#xff1a;\u5c06 \u975e \u7a7a \u961f \u5217 \u7684 \u524d n &#8211; 1 \u4e2a \u5143 \u7d20 \u8f6c \u79fb \u5230 \u53e6 \u4e00 \u4e2a \u7a7a \u961f \u5217\u3002\u5f39 \u51fa \u539f \u975e \u7a7a \u961f \u5217 \u7684 \u6700 \u540e \u4e00 \u4e2a \u5143 \u7d20&#xff08;\u5373 \u6808 \u9876&#xff09;\u3002\u65f6 \u95f4 \u590d \u6742 \u5ea6 O(n)&#xff0c;\u5176 \u4e2d n \u662f \u6808 \u7684 \u5927 \u5c0f\u3002<\/p>\n<p>2\u3001\u4e3a \u4ec0 \u4e48 \u9700 \u8981 \u4e24 \u4e2a \u961f \u5217&#xff1f; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6808 \u7684 \u6838 \u5fc3 \u662f \u540e \u8fdb \u5148 \u51fa&#xff0c;\u800c \u961f \u5217 \u662f \u5148 \u8fdb \u5148 \u51fa\u3002\u5047 \u8bbe \u4ec5 \u7528 \u4e00 \u4e2a \u961f \u5217&#xff0c;\u65e0 \u6cd5 \u76f4 \u63a5 \u8bbf \u95ee \u961f \u5c3e \u5143 \u7d20&#xff08;\u6808 \u9876&#xff09;\u3002\u901a \u8fc7 \u4e24 \u4e2a \u961f \u5217 \u7684 \u4ea4 \u66ff \u4f7f \u7528&#xff0c;\u53ef \u4ee5 \u5728 \u51fa \u6808 \u65f6 \u5c06 \u524d n &#8211; 1 \u4e2a \u5143 \u7d20 \u6682 \u5b58 \u5230 \u53e6 \u4e00 \u4e2a \u961f \u5217&#xff0c;\u4ece \u800c \u66b4 \u9732 \u6808 \u9876 \u5143 \u7d20\u3002<\/p>\n<p>3\u3001\u72b6 \u6001 \u8f6c \u79fb \u793a \u4f8b \u5047 \u8bbe \u6808 \u4e2d \u5df2 \u6709 \u5143 \u7d20 [1, 2, 3]&#xff08;\u6808 \u9876 \u4e3a 3&#xff09;&#xff0c;\u5b58 \u50a8 \u5728 q1 \u4e2d&#xff1a; q1: [1, 2, 3] q2: [ ] \u51fa \u6808 \u64cd \u4f5c&#xff1a;\u5c06 q1 \u7684 \u524d \u4e24 \u4e2a \u5143 \u7d20&#xff08;1, 2&#xff09;\u8f6c \u79fb \u5230 q2&#xff1a; q1: [3] q2: [1, 2] \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5f39 \u51fa q1 \u7684 \u6700 \u540e \u4e00 \u4e2a \u5143 \u7d20 3&#xff0c;\u5f97 \u5230 \u6808 \u9876\u3002\u6b64 \u65f6 q2 \u6210 \u4e3a \u975e \u7a7a \u961f \u5217&#xff0c;\u7528 \u4e8e \u540e \u7eed \u64cd \u4f5c\u3002<\/p>\n<hr \/>\n<p>\u6e29 \u99a8 \u63d0 \u793a&#xff1a;\u8bfb \u8005 \u4eec &#xff0c;\u5148 \u81ea \u5df1 \u5199 \u4ee3 \u7801&#xff0c;\u8fd9 \u662f \u63d0 \u5347 \u7f16 \u7a0b \u80fd \u529b \u7684 \u597d \u673a \u4f1a\u3002\u82e5 \u672a \u8fbe \u8981 \u6c42 &#xff0c;\u522b \u6c14 \u9981 &#xff0c;\u53c2 \u8003 \u4e0b \u6587 \u89e3 \u91ca \u4f1a \u6709 \u65b0 \u6536 \u83b7\u3002<\/p>\n<p>\u4e0b \u9762 \u5c55 \u793a\u4ee3 \u7801 \u793a \u4f8b\u3002<\/p>\n<p>typedef int QDataType<span class=\"token punctuation\">;<\/span><br \/>\ntypedef struct QueueNode <span class=\"token punctuation\">{<\/span><br \/>\n    struct QueueNode<span class=\"token operator\">*<\/span> next<span class=\"token punctuation\">;<\/span><br \/>\n    QDataType data<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span> QNode<span class=\"token punctuation\">;<\/span><\/p>\n<p>typedef struct Queue <span class=\"token punctuation\">{<\/span><br \/>\n    QNode<span class=\"token operator\">*<\/span> head<span class=\"token punctuation\">;<\/span><br \/>\n    QNode<span class=\"token operator\">*<\/span> tail<span class=\"token punctuation\">;<\/span><br \/>\n    int size<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span> Queue<span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u521d\u59cb\u5316\u961f\u5217<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">QueueInit<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u9500\u6bc1\u961f\u5217<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">QueueDestory<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u961f\u5c3e\u5165\u961f\u5217<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">QueuePush<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">,<\/span> QDataType x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u961f\u5934\u51fa\u961f\u5217<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">QueuePop<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u83b7\u53d6\u961f\u5217\u4e2d\u6709\u6548\u5143\u7d20\u4e2a\u6570<\/span><br \/>\nint <span class=\"token function\">QueueSize<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u68c0\u67e5\u961f\u5217\u662f\u5426\u4e3a\u7a7a<\/span><br \/>\nbool <span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u53d6\u51fa\u961f\u5934\u7684\u6570\u636e<\/span><br \/>\nQDataType <span class=\"token function\">QueueFront<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u53d6\u51fa\u961f\u5c3e\u7684\u6570\u636e<\/span><br \/>\nQDataType <span class=\"token function\">QueueBack<\/span><span class=\"token punctuation\">(<\/span>Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">QueueInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">&#061;<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>size <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">QueueDestory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    QNode<span class=\"token operator\">*<\/span> cur <span class=\"token operator\">&#061;<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span>cur<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        QNode<span class=\"token operator\">*<\/span> next <span class=\"token operator\">&#061;<\/span> cur<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>next<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>cur<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        cur <span class=\"token operator\">&#061;<\/span> next<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">&#061;<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>size <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">QueuePush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<span class=\"token punctuation\">,<\/span> QDataType x<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    QNode<span class=\"token operator\">*<\/span> newnode <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>QNode<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>QNode<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>newnode <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">perror<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;newnode&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    newnode<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>data <span class=\"token operator\">&#061;<\/span> x<span class=\"token punctuation\">;<\/span><br \/>\n    newnode<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>next <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">&#061;<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail <span class=\"token operator\">&#061;<\/span> newnode<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>next <span class=\"token operator\">&#061;<\/span> newnode<span class=\"token punctuation\">;<\/span><br \/>\n        pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail <span class=\"token operator\">&#061;<\/span> newnode<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>size<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">QueuePop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">!&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/ \u65b9\u6cd51<\/span><br \/>\n    <span class=\"token comment\">\/\/ QNode* next &#061; pq-&gt;head-&gt;next;<\/span><br \/>\n    <span class=\"token comment\">\/\/ free(pq-&gt;head);<\/span><br \/>\n    <span class=\"token comment\">\/\/ pq-&gt;head &#061; next;<\/span><br \/>\n    <span class=\"token comment\">\/\/ if (pq-&gt;head &#061;&#061; NULL)<\/span><br \/>\n    <span class=\"token comment\">\/\/{<\/span><br \/>\n    <span class=\"token comment\">\/\/pq-&gt;tail &#061; NULL;<\/span><br \/>\n    <span class=\"token comment\">\/\/ }<\/span><br \/>\n    <span class=\"token comment\">\/\/ \u65b9\u6cd52<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>next <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail <span class=\"token operator\">&#061;<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        QNode<span class=\"token operator\">*<\/span> next <span class=\"token operator\">&#061;<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>next<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">&#061;<\/span> next<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>size<span class=\"token operator\">&#8212;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nint <span class=\"token function\">QueueSize<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>size<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nbool <span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/ return pq-&gt;size &#061;&#061; 0;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span> <span class=\"token operator\">&amp;&amp;<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>QDataType <span class=\"token function\">QueueFront<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>head<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>data<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>QDataType <span class=\"token function\">QueueBack<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">Queue<span class=\"token operator\">*<\/span> pq<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span>pq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> pq<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>tail<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>data<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\ntypedef struct <span class=\"token punctuation\">{<\/span><br \/>\n    Queue q1<span class=\"token punctuation\">;<\/span><br \/>\n    Queue q2<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span> MyStack<span class=\"token punctuation\">;<\/span><\/p>\n<p>MyStack<span class=\"token operator\">*<\/span> <span class=\"token function\">myStackCreate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    MyStack<span class=\"token operator\">*<\/span> tmp <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>MyStack<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>MyStack<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>tmp <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">perror<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;malloc fail&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token function\">QueueInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>tmp<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">QueueInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>tmp<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> tmp<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">myStackPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyStack<span class=\"token operator\">*<\/span> obj<span class=\"token punctuation\">,<\/span> int x<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">QueuePush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">,<\/span> x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">QueuePush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q2<span class=\"token punctuation\">,<\/span> x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>int <span class=\"token function\">myStackPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyStack<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    Queue<span class=\"token operator\">*<\/span> emptyQ <span class=\"token operator\">&#061;<\/span> <span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u5047\u5b9aq1\u4e3a\u7a7a,q2\u4e0d\u4e3a\u7a7a<\/span><br \/>\n    Queue<span class=\"token operator\">*<\/span> nonemptyQ <span class=\"token operator\">&#061;<\/span> <span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        emptyQ <span class=\"token operator\">&#061;<\/span> <span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q2<span class=\"token punctuation\">;<\/span><br \/>\n        nonemptyQ <span class=\"token operator\">&#061;<\/span> <span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token function\">QueueSize<\/span><span class=\"token punctuation\">(<\/span>nonemptyQ<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">QueuePush<\/span><span class=\"token punctuation\">(<\/span>emptyQ<span class=\"token punctuation\">,<\/span> <span class=\"token function\">QueueFront<\/span><span class=\"token punctuation\">(<\/span>nonemptyQ<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">QueuePop<\/span><span class=\"token punctuation\">(<\/span>nonemptyQ<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    int top <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">QueueFront<\/span><span class=\"token punctuation\">(<\/span>nonemptyQ<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">QueuePop<\/span><span class=\"token punctuation\">(<\/span>nonemptyQ<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> top<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>int <span class=\"token function\">myStackTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyStack<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token function\">QueueBack<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token function\">QueueBack<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>bool <span class=\"token function\">myStackEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyStack<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&amp;&amp;<\/span> <span class=\"token function\">QueueEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">myStackFree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyStack<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">QueueDestory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">QueueDestory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>q2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/**<br \/>\n * Your MyStack struct will be instantiated and called as such:<br \/>\n * MyStack* obj &#061; myStackCreate();<br \/>\n * myStackPush(obj, x);<\/p>\n<p> * int param_2 &#061; myStackPop(obj);<\/p>\n<p> * int param_3 &#061; myStackTop(obj);<\/p>\n<p> * bool param_4 &#061; myStackEmpty(obj);<\/p>\n<p> * myStackFree(obj);<br \/>\n*\/<\/span><\/p>\n<p>\u4ee3 \u7801 \u5206 \u6790 1\u3001\u961f \u5217 \u7684 \u5b9e \u73b0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u961f \u5217 \u91c7 \u7528 \u94fe \u8868 \u7ed3 \u6784&#xff0c;\u5305 \u542b \u5934 \u6307 \u9488&#xff08;head&#xff09;\u3001\u5c3e \u6307 \u9488&#xff08;tail&#xff09; \u548c \u5927 \u5c0f \u8ba1 \u6570 \u5668&#xff08;size&#xff09;&#xff1a; \u521d \u59cb \u5316&#xff1a;QueueInit \u5c06 \u5934 \u5c3e \u6307 \u9488 \u7f6e \u4e3a NULL&#xff0c;size \u7f6e \u4e3a 0\u3002 \u5165 \u961f&#xff1a;QueuePush \u521b \u5efa \u65b0 \u8282 \u70b9&#xff0c;\u82e5 \u961f \u5217 \u4e3a \u7a7a \u5219 \u540c \u65f6 \u66f4 \u65b0 \u5934 \u5c3e \u6307 \u9488&#xff1b;\u5426 \u5219 \u4ec5 \u66f4 \u65b0 \u5c3e \u6307 \u9488\u3002 \u51fa \u961f&#xff1a;QueuePop \u5220 \u9664 \u5934 \u8282 \u70b9&#xff0c;\u82e5 \u961f \u5217 \u4ec5 \u6709 \u4e00 \u4e2a \u5143 \u7d20 \u5219 \u540c \u65f6 \u7f6e \u7a7a \u5934 \u5c3e \u6307 \u9488\u3002 \u8f85 \u52a9 \u64cd \u4f5c&#xff1a;QueueSize\u3001QueueEmpty\u3001QueueFront\u3001QueueBack \u63d0 \u4f9b \u72b6 \u6001 \u67e5 \u8be2\u3002<\/p>\n<p>2\u3001\u6808 \u7684 \u5b9e \u73b0&#xff08;\u4f7f \u7528 \u4e24 \u4e2a \u961f \u5217&#xff09; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6808 \u7684 \u6838 \u5fc3 \u662f \u540e \u8fdb \u5148 \u51fa&#xff0c;\u800c \u961f \u5217 \u662f \u5148 \u8fdb \u5148 \u51fa\u3002\u4e3a \u6a21 \u62df \u6808 \u7684 \u884c \u4e3a&#xff0c;\u4f7f \u7528 \u4e24 \u4e2a \u961f \u5217 q1 \u548c q2&#xff1a; \u521d \u59cb \u5316&#xff1a;myStackCreate \u5206 \u914d \u5185 \u5b58 \u5e76 \u521d \u59cb \u5316 \u4e24 \u4e2a \u961f \u5217\u3002 \u5165 \u6808&#xff1a;myStackPush \u5c06 \u5143 \u7d20 \u6dfb \u52a0 \u5230 \u975e \u7a7a \u961f \u5217&#xff08;\u82e5 \u90fd \u4e3a \u7a7a \u5219 \u9ed8 \u8ba4 \u9009 q1&#xff09;\u3002 \u51fa \u6808&#xff1a;myStackPop \u5c06 \u975e \u7a7a \u961f \u5217 \u7684 \u524d n &#8211; 1 \u4e2a \u5143 \u7d20 \u8f6c \u79fb \u5230 \u7a7a \u961f \u5217&#xff0c;\u6700 \u540e \u5f39 \u51fa \u5269 \u4f59 \u7684 \u961f \u5c3e \u5143 \u7d20&#xff08;\u5373 \u6808 \u9876&#xff09;\u3002 \u83b7 \u53d6 \u6808 \u9876&#xff1a;myStackTop \u76f4 \u63a5 \u8fd4 \u56de \u975e \u7a7a \u961f \u5217 \u7684 \u961f \u5c3e \u5143 \u7d20\u3002 \u5224 \u7a7a \u4e0e \u91ca \u653e&#xff1a;myStackEmpty \u68c0 \u67e5 \u4e24 \u4e2a \u961f \u5217 \u662f \u5426 \u90fd \u4e3a \u7a7a&#xff0c;myStackFree \u91ca \u653e \u961f \u5217 \u5185 \u5b58\u3002<\/p>\n<hr \/>\n<p>\u590d \u6742 \u5ea6 \u5206 \u6790 \u5165 \u6808&#xff08;Push&#xff09;&#xff1a;O(1)&#xff0c;\u76f4 \u63a5 \u6dfb \u52a0 \u5230 \u961f \u5217 \u5c3e \u90e8\u3002 \u51fa \u6808&#xff08;Pop&#xff09;&#xff1a;O(n)&#xff0c;\u9700 \u8f6c \u79fb n &#8211; 1 \u4e2a \u5143 \u7d20\u3002 \u83b7 \u53d6 \u6808 \u9876&#xff08;Top&#xff09;&#xff1a;O(1)&#xff0c;\u76f4 \u63a5 \u8bbf \u95ee \u961f \u5217 \u5c3e \u90e8\u3002 \u7a7a \u95f4 \u590d \u6742 \u5ea6&#xff1a;O(n)&#xff0c;\u5b58 \u50a8 \u6240 \u6709 \u5143 \u7d20\u3002<\/p>\n<hr \/>\n<h2>\u7b2c \u4e09 \u9898 &#8211; &#8211; &#8211; \u7528 \u6808 \u5b9e \u73b0 \u961f \u5217<\/h2>\n<p>\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217<\/p>\n<hr \/>\n<p>\u63cf \u8ff0&#xff1a;\u8bf7 \u4f60 \u4ec5 \u4f7f \u7528 \u4e24 \u4e2a \u6808 \u5b9e \u73b0 \u5148 \u5165 \u5148 \u51fa \u961f \u5217\u3002\u961f \u5217 \u5e94 \u5f53 \u652f \u6301 \u4e00 \u822c \u961f \u5217\u652f \u6301 \u7684 \u6240 \u6709 \u64cd \u4f5c&#xff08;push\u3001pop\u3001peek\u3001empty&#xff09;&#xff1a;<\/p>\n<p>\u5b9e \u73b0 MyQueue \u7c7b&#xff1a; void push(int x) &#xff1a;\u5c06 \u5143 \u7d20 x \u63a8 \u5230 \u961f \u5217 \u7684 \u672b \u5c3e\u3002 int pop()&#xff1a;\u4ece \u961f \u5217 \u7684 \u5f00 \u5934 \u79fb \u9664 \u5e76 \u8fd4 \u56de \u5143 \u7d20\u3002 int peek()&#xff1a;\u8fd4 \u56de \u961f \u5217 \u5f00 \u5934 \u7684 \u5143 \u7d20\u3002 boolean empty()&#xff1a;\u5982 \u679c \u961f \u5217 \u4e3a \u7a7a&#xff0c;\u8fd4 \u56de true&#xff1b;\u5426 \u5219&#xff0c;\u8fd4 \u56de false<\/p>\n<p>\u8bf4 \u660e&#xff1a; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u4f60 \u53ea \u80fd \u4f7f \u7528 \u6807 \u51c6 \u7684 \u6808 \u64cd \u4f5c \u2014\u2014 \u4e5f \u5c31 \u662f \u53ea \u6709 push to top, peek\/pop from top, size, \u548c is empty \u64cd \u4f5c \u662f \u5408 \u6cd5 \u7684\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u4f60 \u6240 \u4f7f \u7528 \u7684 \u8bed \u8a00 \u4e5f \u8bb8 \u4e0d \u652f \u6301 \u6808\u3002\u4f60 \u53ef \u4ee5 \u4f7f \u7528 list \u6216 \u8005 deque&#xff08;\u53cc \u7aef \u961f \u5217&#xff09;\u6765 \u6a21 \u62df \u4e00 \u4e2a \u6808&#xff0c;\u53ea \u8981 \u662f \u6807 \u51c6 \u7684 \u6808 \u64cd \u4f5c \u5373 \u53ef\u3002<\/p>\n<p>\u793a \u4f8b 1&#xff1a; \u8f93 \u5165&#xff1a; [\u201cMyQueue\u201d, \u201cpush\u201d, \u201cpush\u201d, \u201cpeek\u201d, \u201cpop\u201d, \u201cempty\u201d] [[], [1], [2], [], [], []] \u8f93 \u51fa&#xff1a; [null, null, null, 1, 1, false] \u89e3 \u91ca&#xff1a; MyQueue myQueue &#061; new MyQueue(); myQueue.push(1); \/\/ queue is: [1] myQueue.push(2); \/\/ queue is: [1, 2] (leftmost is front of the queue) myQueue.peek(); \/\/ return 1 myQueue.pop(); \/\/ return 1, queue is [2] myQueue.empty(); \/\/ return false<\/p>\n<p>\u63d0 \u793a&#xff1a; 1 &lt;&#061; x &lt;&#061; 9 \u6700 \u591a \u8c03 \u7528 100 \u6b21 push\u3001pop\u3001peek \u548c empty \u5047 \u8bbe \u6240 \u6709 \u64cd \u4f5c \u90fd \u662f \u6709 \u6548 \u7684&#xff08;\u4f8b \u5982&#xff0c;\u4e00 \u4e2a \u7a7a \u7684 \u961f \u5217 \u4e0d \u4f1a \u8c03 \u7528 pop \u6216 \u8005 peek \u64cd \u4f5c&#xff09;<\/p>\n<hr \/>\n<h3>\u4e24 \u4e2a \u6808<\/h3>\n<hr \/>\n<p>\u601d \u8def \u5206 \u6790 1\u3001\u6838 \u5fc3 \u8bbe \u8ba1 \u601d \u60f3 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u961f \u5217 \u7684 \u7279 \u70b9 \u662f \u5148 \u8fdb \u5148 \u51fa&#xff0c;\u800c \u6808 \u662f \u540e \u8fdb \u5148 \u51fa\u3002\u4e3a \u4e86 \u7528 \u4e24 \u4e2a \u6808 \u6a21 \u62df \u961f \u5217&#xff0c;\u9700 \u8981&#xff1a; \u5165 \u961f&#xff08;Push&#xff09;&#xff1a;\u5143 \u7d20 \u76f4 \u63a5 \u538b \u5165 pushst \u6808\u3002 \u51fa \u961f&#xff08;Pop&#xff09;&#xff1a;\u4ece popst \u6808 \u5f39 \u51fa \u5143 \u7d20\u3002\u82e5 popst \u4e3a \u7a7a&#xff0c;\u5219 \u5c06 pushst \u7684 \u6240 \u6709 \u5143 \u7d20 \u5012 \u5e8f \u538b \u5165 popst&#xff0c;\u518d \u5f39 \u51fa \u6808 \u9876\u3002<\/p>\n<p>2\u3001\u53cc \u6808 \u7684 \u534f \u540c \u5de5 \u4f5c \u65b9 \u5f0f pushst&#xff1a;\u4e13 \u95e8 \u7528 \u4e8e \u5165 \u961f \u64cd \u4f5c&#xff0c;\u65b0 \u5143 \u7d20 \u59cb \u7ec8 \u538b \u5165 \u6b64 \u6808\u3002popst&#xff1a;\u4e13 \u95e8 \u7528 \u4e8e \u51fa \u961f \u64cd \u4f5c&#xff0c;\u82e5 \u4e3a \u7a7a \u5219 \u4ece pushst \u5bfc \u5165 \u6240 \u6709 \u5143 \u7d20&#xff08;\u6b64 \u65f6 \u5143 \u7d20 \u987a \u5e8f \u88ab \u53cd \u8f6c&#xff0c;\u7b26 \u5408 \u961f \u5217 \u7684 FIFO \u7279\u6027&#xff09;\u3002<\/p>\n<p>3\u3001\u5173 \u952e \u64cd \u4f5c \u6b65 \u9aa4 \u5165 \u961f&#xff08;Push&#xff09;&#xff1a;\u65f6 \u95f4 \u590d \u6742 \u5ea6 O(1)&#xff0c;\u76f4 \u63a5 \u538b \u6808\u3002 \u51fa \u961f&#xff08;Pop&#xff09;&#xff1a; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u82e5 popst \u975e \u7a7a&#xff0c;\u76f4 \u63a5 \u5f39 \u51fa \u6808 \u9876\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u82e5 popst \u4e3a \u7a7a&#xff0c;\u5c06 pushst \u7684 \u6240 \u6709 \u5143 \u7d20 \u5012 \u5165 popst&#xff0c;\u518d \u5f39 \u51fa\u3002\u5e73 \u5747 \u65f6 \u95f4 \u590d \u6742 \u5ea6 O(1)&#xff08;\u6bcf \u4e2a \u5143 \u7d20 \u6700 \u591a \u88ab \u5012 \u817e \u4e24 \u6b21&#xff09;\u3002 \u83b7 \u53d6 \u961f \u5934 &#xff08;Peek&#xff09;&#xff1a;\u4e0e Pop \u903b \u8f91 \u76f8 \u540c&#xff0c;\u4f46 \u4e0d \u5f39 \u51fa \u5143 \u7d20\u3002<\/p>\n<hr \/>\n<p>\u6e29 \u99a8 \u63d0 \u793a&#xff1a;\u8bfb \u8005 \u4eec &#xff0c;\u5148 \u81ea \u5df1 \u5199 \u4ee3 \u7801&#xff0c;\u8fd9 \u662f \u63d0 \u5347 \u7f16 \u7a0b \u80fd \u529b \u7684 \u597d \u673a \u4f1a\u3002\u82e5 \u672a \u8fbe \u8981 \u6c42 &#xff0c;\u522b \u6c14 \u9981 &#xff0c;\u53c2 \u8003 \u4e0b \u6587 \u89e3 \u91ca \u4f1a \u6709 \u65b0 \u6536 \u83b7\u3002<\/p>\n<p>\u4e0b \u9762 \u5c55 \u793a\u4ee3 \u7801 \u793a \u4f8b\u3002<\/p>\n<p>typedef int STDataType<span class=\"token punctuation\">;<\/span><br \/>\ntypedef struct Stack <span class=\"token punctuation\">{<\/span><br \/>\n    STDataType<span class=\"token operator\">*<\/span> a<span class=\"token punctuation\">;<\/span><br \/>\n    int top<span class=\"token punctuation\">;<\/span><br \/>\n    int capacity<span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u5bb9\u91cf<\/span><br \/>\n<span class=\"token punctuation\">}<\/span> <span class=\"token constant\">ST<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u521d\u59cb\u5316<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">STInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u53ea\u80fd\u5728\u4e00\u7aef\u63d2\u5165,\u5373\u6808\u9876<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">STPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">,<\/span> STDataType x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>int <span class=\"token function\">STSize<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>bool <span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u8bbf\u95ee\u6808\u9876\u5143\u7d20<\/span><br \/>\nSTDataType <span class=\"token function\">STTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>STDataType<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>STDataType<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">perror<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;ps-&gt;a&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ top\u662f\u6808\u9876\u5143\u7d20\u7684\u4e0b\u4e00\u4e2a\u4f4d\u7f6e<\/span><br \/>\n    <span class=\"token comment\">\/\/ ps-&gt;top &#061; -1;         \/\/top\u662f\u6808\u9876\u5143\u7d20<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<span class=\"token punctuation\">,<\/span> STDataType x<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;&#061;<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        STDataType<span class=\"token operator\">*<\/span> tmp <span class=\"token operator\">&#061;<\/span><br \/>\n            <span class=\"token punctuation\">(<\/span>STDataType<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">realloc<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">,<\/span> <span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>STDataType<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>tmp <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token function\">perror<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;realloc fail&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n        ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;<\/span> tmp<span class=\"token punctuation\">;<\/span><br \/>\n        ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>capacity <span class=\"token operator\">*&#061;<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">[<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> x<span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">STPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token operator\">&#8212;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>int <span class=\"token function\">STSize<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>bool <span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>STDataType <span class=\"token function\">STTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\"><span class=\"token constant\">ST<\/span><span class=\"token operator\">*<\/span> ps<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">assert<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span>ps<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">[<\/span>ps<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>top <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\ntypedef struct <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token constant\">ST<\/span> pushst<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token constant\">ST<\/span> popst<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span> MyQueue<span class=\"token punctuation\">;<\/span><br \/>\nMyQueue<span class=\"token operator\">*<\/span> <span class=\"token function\">myQueueCreate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    MyQueue<span class=\"token operator\">*<\/span> obj <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>MyQueue<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>MyQueue<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>obj <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">perror<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;malloc fail&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token function\">STInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>pushst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">STInit<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>popst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> obj<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">myQueuePush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyQueue<span class=\"token operator\">*<\/span> obj<span class=\"token punctuation\">,<\/span> int x<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token function\">STPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>pushst<span class=\"token punctuation\">,<\/span> x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span><br \/>\nint <span class=\"token function\">myQueuePeek<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>popst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u5012\u6570\u636e<\/span><br \/>\n        <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span><span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>pushst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token function\">STPush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>popst<span class=\"token punctuation\">,<\/span> <span class=\"token function\">STTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>pushst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token function\">STPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>pushst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">STTop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>popst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nint <span class=\"token function\">myQueuePop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    int front <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">myQueuePeek<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">STPop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>popst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> front<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>bool <span class=\"token function\">myQueueEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>popst<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&amp;&amp;<\/span> <span class=\"token function\">STEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>pushst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">void<\/span> <span class=\"token function\">myQueueFree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>pushst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">STDestroy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">&amp;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>popst<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/**<br \/>\n * Your MyQueue struct will be instantiated and called as such:<br \/>\n * MyQueue* obj &#061; myQueueCreate();<br \/>\n * myQueuePush(obj, x);<\/p>\n<p> * int param_2 &#061; myQueuePop(obj);<\/p>\n<p> * int param_3 &#061; myQueuePeek(obj);<\/p>\n<p> * bool param_4 &#061; myQueueEmpty(obj);<\/p>\n<p> * myQueueFree(obj);<br \/>\n*\/<\/span><\/p>\n<hr \/>\n<p>\u4ee3 \u7801 \u5206 \u6790 1\u3001\u6808 \u7684 \u5b9e \u73b0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u6808 \u91c7 \u7528 \u52a8 \u6001 \u6570 \u7ec4 \u5b9e \u73b0&#xff0c;\u5305 \u542b \u6307 \u9488 a\u3001\u6808 \u9876 \u7d22 \u5f15 top \u548c \u5bb9 \u91cf capacity&#xff1a; \u521d \u59cb \u5316&#xff1a;\u5206 \u914d \u521d \u59cb \u5bb9 \u91cf&#xff08;4&#xff09;&#xff0c;top \u521d \u59cb \u5316 \u4e3a 0&#xff08;\u8868 \u793a \u6808 \u9876 \u7684 \u4e0b \u4e00 \u4e2a \u4f4d \u7f6e&#xff09;\u3002 \u5165 \u6808&#xff08;Push&#xff09;&#xff1a;\u68c0 \u67e5 \u5bb9 \u91cf&#xff0c;\u5fc5 \u8981 \u65f6 \u6269 \u5bb9&#xff08;\u500d \u589e \u7b56 \u7565&#xff09;\u3002 \u51fa \u6808&#xff08;Pop&#xff09;&#xff1a;\u76f4 \u63a5 \u51cf \u5c0f top \u7d22 \u5f15\u3002 \u83b7 \u53d6 \u6808 \u9876&#xff08;Top&#xff09;&#xff1a;\u8fd4 \u56de a[top-1]\u3002 2\u3001\u961f \u5217 \u7684 \u5b9e \u73b0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u961f \u5217 \u7ed3 \u6784 \u5305 \u542b \u4e24 \u4e2a \u6808 pushst \u548c popst&#xff1a; \u521b \u5efa \u4e0e \u9500 \u6bc1 \u5165 \u961f&#xff08;Push&#xff09;&#xff1a;\u76f4 \u63a5 \u538b \u5165 pushst\u3002 \u51fa \u961f&#xff08;Pop&#xff09;&#xff1a;\u590d \u7528 myQueuePeek \u83b7 \u53d6 \u961f \u5934&#xff0c;\u518d \u5f39 \u51fa\u3002 \u83b7 \u53d6 \u961f \u5934&#xff08;Peek&#xff09;&#xff1a;\u82e5 popst \u4e3a \u7a7a&#xff0c;\u5219 \u5c06 pushst \u5143 \u7d20 \u5012 \u5165 popst\u3002 \u5224 \u7a7a&#xff1a;\u4e24 \u4e2a \u6808 \u90fd \u4e3a \u7a7a \u65f6 \u961f \u5217 \u4e3a \u7a7a\u3002<\/p>\n<hr \/>\n<p>\u590d \u6742 \u5ea6 \u5206 \u6790 \u65f6 \u95f4 \u590d \u6742 \u5ea6 \u5165 \u961f&#xff08;Push&#xff09;&#xff1a;O(1) \u51fa \u961f&#xff08;Pop&#xff09;\/ \u83b7 \u53d6 \u961f \u5934&#xff08;Peek&#xff09;&#xff1a;\u5e73 \u5747 O(1)&#xff08;\u6bcf \u4e2a \u5143 \u7d20 \u6700 \u591a \u88ab \u5012 \u5165 popst \u4e00 \u6b21&#xff09; \u7a7a \u95f4 \u590d \u6742 \u5ea6 O(n)&#xff0c;\u5b58 \u50a8 \u6240 \u6709 \u5143 \u7d20\u3002<\/p>\n<hr \/>\n<h2>\u7b2c \u56db \u9898 &#8211; &#8211; &#8211; \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217<\/h2>\n<p>\u8bbe \u8ba1 \u5faa \u73af \u961f \u5217<\/p>\n<hr \/>\n<p>\u63cf \u8ff0&#xff1a;\u8bbe \u8ba1 \u4f60 \u7684 \u5faa \u73af \u961f \u5217 \u5b9e \u73b0\u3002\u5faa \u73af \u961f \u5217 \u662f \u4e00 \u79cd \u7ebf \u6027 \u6570 \u636e \u7ed3 \u6784&#xff0c;\u5176 \u64cd \u4f5c \u8868 \u73b0 \u57fa \u4e8e FIFO&#xff08;\u5148 \u8fdb \u5148 \u51fa&#xff09;\u539f \u5219 \u5e76 \u4e14 \u961f \u5c3e \u88ab \u8fde \u63a5 \u5728 \u961f \u9996 \u4e4b \u540e \u4ee5 \u5f62 \u6210 \u4e00 \u4e2a \u5faa \u73af\u3002\u5b83 \u4e5f \u88ab \u79f0 \u4e3a \u201c \u73af \u5f62 \u7f13 \u51b2 \u5668\u201d\u3002<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5faa \u73af \u961f \u5217 \u7684 \u4e00 \u4e2a \u597d \u5904 \u662f \u6211 \u4eec \u53ef \u4ee5 \u5229 \u7528 \u8fd9 \u4e2a \u961f \u5217 \u4e4b \u524d \u7528 \u8fc7 \u7684 \u7a7a \u95f4\u3002\u5728 \u4e00 \u4e2a \u666e \u901a \u961f \u5217 \u91cc&#xff0c;\u4e00 \u65e6 \u4e00 \u4e2a \u961f \u5217 \u6ee1 \u4e86&#xff0c;\u6211 \u4eec \u5c31 \u4e0d \u80fd \u63d2 \u5165 \u4e0b \u4e00 \u4e2a \u5143 \u7d20&#xff0c;\u5373 \u4f7f \u5728 \u961f \u5217 \u524d \u9762 \u4ecd \u6709 \u7a7a \u95f4\u3002\u4f46 \u662f \u4f7f \u7528 \u5faa \u73af \u961f \u5217&#xff0c;\u6211 \u4eec \u80fd \u4f7f\u7528 \u8fd9 \u4e9b \u7a7a \u95f4 \u53bb \u5b58 \u50a8 \u65b0 \u7684 \u503c\u3002<\/p>\n<p>\u4f60 \u7684 \u5b9e \u73b0 \u5e94 \u8be5 \u652f\u6301 \u5982 \u4e0b \u64cd \u4f5c&#xff1a; MyCircularQueue(k): \u6784 \u9020 \u5668&#xff0c;\u8bbe \u7f6e \u961f \u5217 \u957f \u5ea6 \u4e3a k\u3002 Front: \u4ece \u961f \u9996 \u83b7 \u53d6 \u5143 \u7d20\u3002\u5982 \u679c \u961f \u5217 \u4e3a \u7a7a&#xff0c;\u8fd4 \u56de -1\u3002 Rear: \u83b7 \u53d6 \u961f \u5c3e \u5143 \u7d20\u3002\u5982 \u679c \u961f \u5217 \u4e3a \u7a7a&#xff0c;\u8fd4 \u56de -1\u3002 enQueue(value): \u5411 \u5faa \u73af \u961f \u5217 \u63d2 \u5165 \u4e00 \u4e2a \u5143 \u7d20\u3002\u5982 \u679c \u6210 \u529f\u63d2 \u5165 \u5219 \u8fd4 \u56de \u771f\u3002 deQueue(): \u4ece \u5faa \u73af \u961f \u5217 \u4e2d \u5220 \u9664 \u4e00 \u4e2a \u5143 \u7d20\u3002\u5982 \u679c \u6210 \u529f \u5220 \u9664 \u5219 \u8fd4 \u56de \u771f\u3002 isEmpty(): \u68c0 \u67e5 \u5faa \u73af \u961f \u5217 \u662f \u5426 \u4e3a \u7a7a\u3002 isFull(): \u68c0 \u67e5 \u5faa \u73af \u961f \u5217 \u662f \u5426 \u5df2 \u6ee1\u3002<\/p>\n<p>\u793a \u4f8b&#xff1a; MyCircularQueue circularQueue &#061; new MyCircularQueue(3); \/\/ \u8bbe\u7f6e\u957f\u5ea6\u4e3a 3 circularQueue.enQueue(1); \/\/ \u8fd4\u56de true circularQueue.enQueue(2); \/\/ \u8fd4\u56de true circularQueue.enQueue(3); \/\/ \u8fd4\u56de true circularQueue.enQueue(4); \/\/ \u8fd4\u56de false&#xff0c;\u961f\u5217\u5df2\u6ee1 circularQueue.Rear(); \/\/ \u8fd4\u56de 3 circularQueue.isFull(); \/\/ \u8fd4\u56de true circularQueue.deQueue(); \/\/ \u8fd4\u56de true circularQueue.enQueue(4); \/\/ \u8fd4\u56de true circularQueue.Rear(); \/\/ \u8fd4\u56de 4<\/p>\n<p>\u63d0 \u793a&#xff1a; \u6240 \u6709 \u7684 \u503c \u90fd \u5728 0 \u81f3 1000 \u7684 \u8303 \u56f4 \u5185&#xff1b; \u64cd \u4f5c \u6570 \u5c06 \u5728 1 \u81f3 1000 \u7684 \u8303 \u56f4 \u5185&#xff1b; \u8bf7 \u4e0d \u8981 \u4f7f \u7528 \u5185 \u7f6e \u7684 \u961f \u5217 \u5e93\u3002<\/p>\n<hr \/>\n<h3>\u5faa \u73af \u961f \u5217<\/h3>\n<hr \/>\n<p>\u601d \u8def \u5206 \u6790 1\u3001\u5faa \u73af \u961f \u5217 \u7684 \u6838 \u5fc3 \u6982 \u5ff5 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5faa \u73af \u961f \u5217 \u901a \u8fc7 \u5c06 \u6570 \u7ec4 \u9996 \u5c3e \u76f8 \u8fde&#xff0c;\u89e3 \u51b3 \u4e86 \u666e \u901a \u961f \u5217 \u7684 \u201c\u5047 \u6ea2 \u51fa\u201d \u95ee \u9898&#xff08;\u5373 \u6570 \u7ec4 \u524d \u7aef \u6709 \u7a7a \u4f4d \u4f46 \u961f \u5c3e \u5df2 \u5230 \u6570 \u7ec4 \u672b \u5c3e \u7684 \u60c5 \u51b5&#xff09;\u3002\u5173 \u952e \u5728 \u4e8e&#xff1a; \u4f7f \u7528 \u56fa \u5b9a \u5927 \u5c0f \u7684 \u6570 \u7ec4 \u5b58 \u50a8 \u5143 \u7d20 \u901a \u8fc7 front \u548c rear \u6307 \u9488 \u6807 \u8bb0 \u961f \u5934 \u548c \u961f \u5c3e \u5229 \u7528 \u53d6 \u6a21 \u8fd0 \u7b97 % \u5b9e \u73b0 \u6570 \u7ec4 \u7684 \u5faa \u73af \u8bbf \u95ee<\/p>\n<p>2\u3001\u5173 \u952e \u8bbe \u8ba1 \u8981 \u70b9 \u7a7a \u961f \u5217 \u5224 \u65ad&#xff1a; front &#061;&#061; rear&#xff08;\u9996 \u5c3e \u6307 \u9488 \u91cd \u5408&#xff09; \u6ee1 \u961f \u5217 \u5224 \u65ad&#xff1a; (rear &#043; 1) % (k &#043; 1) &#061;&#061; front&#xff08;\u961f \u5c3e \u4e0b \u4e00 \u4e2a \u4f4d \u7f6e \u7b49 \u4e8e \u961f \u5934&#xff09; \u6570 \u7ec4 \u5927 \u5c0f&#xff1a;\u7533 \u8bf7 k&#043;1 \u4e2a \u5143 \u7d20 \u7684 \u7a7a \u95f4&#xff0c;\u907f \u514d \u7a7a \u961f \u5217 \u548c \u6ee1 \u961f \u5217 \u5224 \u65ad \u6761 \u4ef6 \u51b2 \u7a81 \u6307 \u9488 \u79fb \u52a8&#xff1a;\u5165 \u961f \u65f6 rear \u540e \u79fb&#xff0c;\u51fa \u961f \u65f6 front \u540e \u79fb&#xff0c;\u5747 \u901a \u8fc7 \u53d6 \u6a21 \u5b9e \u73b0 \u5faa \u73af\u3002<\/p>\n<hr \/>\n<p>\u6e29 \u99a8 \u63d0 \u793a&#xff1a;\u8bfb \u8005 \u4eec &#xff0c;\u5148 \u81ea \u5df1 \u5199 \u4ee3 \u7801&#xff0c;\u8fd9 \u662f \u63d0 \u5347 \u7f16 \u7a0b \u80fd \u529b \u7684 \u597d \u673a \u4f1a\u3002\u82e5 \u672a \u8fbe \u8981 \u6c42 &#xff0c;\u522b \u6c14 \u9981 &#xff0c;\u53c2 \u8003 \u4e0b \u6587 \u89e3 \u91ca \u4f1a \u6709 \u65b0 \u6536 \u83b7\u3002<\/p>\n<p>\u4e0b \u9762 \u5c55 \u793a\u4ee3 \u7801 \u793a \u4f8b\u3002<\/p>\n<p>typedef struct <span class=\"token punctuation\">{<\/span><br \/>\n    int<span class=\"token operator\">*<\/span> a<span class=\"token punctuation\">;<\/span><br \/>\n    int front<span class=\"token punctuation\">;<\/span><br \/>\n    int rear<span class=\"token punctuation\">;<\/span><br \/>\n    int k<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span> MyCircularQueue<span class=\"token punctuation\">;<\/span><br \/>\nMyCircularQueue<span class=\"token operator\">*<\/span> <span class=\"token function\">myCircularQueueCreate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">int k<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    MyCircularQueue<span class=\"token operator\">*<\/span> obj <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>MyCircularQueue<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>MyCircularQueue<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>front <span class=\"token operator\">&#061;<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>int<span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span><span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">sizeof<\/span><span class=\"token punctuation\">(<\/span>int<span class=\"token punctuation\">)<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k<span class=\"token operator\">&#061;<\/span>k<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> obj<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nbool <span class=\"token function\">myCircularQueueIsEmpty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyCircularQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>front <span class=\"token operator\">&#061;&#061;<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nbool <span class=\"token function\">myCircularQueueIsFull<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyCircularQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token punctuation\">(<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">%<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">&#061;&#061;<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>front<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nbool <span class=\"token function\">myCircularQueueEnQueue<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyCircularQueue<span class=\"token operator\">*<\/span> obj<span class=\"token punctuation\">,<\/span> int value<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">myCircularQueueIsFull<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">[<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#061;<\/span>value<span class=\"token punctuation\">;<\/span><br \/>\n    obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear<span class=\"token operator\">%&#061;<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nbool <span class=\"token function\">myCircularQueueDeQueue<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyCircularQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">myCircularQueueIsEmpty<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>front<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>front<span class=\"token operator\">%&#061;<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nint <span class=\"token function\">myCircularQueueFront<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyCircularQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">myCircularQueueIsEmpty<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">else<\/span><br \/>\n    <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">[<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>front<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nint <span class=\"token function\">myCircularQueueRear<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyCircularQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">myCircularQueueIsEmpty<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">else<\/span><br \/>\n    <span class=\"token punctuation\">{<\/span><br \/>\n        int x <span class=\"token operator\">&#061;<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear<span class=\"token operator\">&#061;&#061;<\/span><span class=\"token number\">0<\/span><span class=\"token operator\">?<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k<span class=\"token operator\">:<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear<span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">[<\/span>x<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token comment\">\/\/ return obj-&gt;a[(obj-&gt;rear-1&#043;obj-&gt;k&#043;1) % (obj-&gt;k&#043;1)];<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">myCircularQueueFree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">MyCircularQueue<span class=\"token operator\">*<\/span> obj<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token comment\">\/**<br \/>\n * Your MyCircularQueue struct will be instantiated and called as such:<br \/>\n * MyCircularQueue* obj &#061; myCircularQueueCreate(k);<br \/>\n * bool param_1 &#061; myCircularQueueEnQueue(obj, value);<\/p>\n<p> * bool param_2 &#061; myCircularQueueDeQueue(obj);<\/p>\n<p> * int param_3 &#061; myCircularQueueFront(obj);<\/p>\n<p> * int param_4 &#061; myCircularQueueRear(obj);<\/p>\n<p> * bool param_5 &#061; myCircularQueueIsEmpty(obj);<\/p>\n<p> * bool param_6 &#061; myCircularQueueIsFull(obj);<\/p>\n<p> * myCircularQueueFree(obj);<br \/>\n*\/<\/span><\/p>\n<hr \/>\n<p>\u4ee3 \u7801 \u5206 \u6790 1\u3001\u6570 \u636e \u7ed3 \u6784 \u5b9a \u4e49 **front&#xff1a;**\u6307 \u5411 \u961f \u5934 \u5143 \u7d20 **rear&#xff1a;**\u6307 \u5411 \u961f \u5c3e \u5143 \u7d20 \u7684 \u4e0b \u4e00 \u4e2a \u4f4d \u7f6e \u6570 \u7ec4 \u5927 \u5c0f \u4e3a k&#043;1&#xff0c;\u5176 \u4e2d k \u662f \u961f \u5217 \u7684 \u6700 \u5927 \u5bb9 \u91cf 2\u3001\u521d \u59cb \u5316 \u51fd \u6570 \u5206 \u914d \u961f \u5217 \u7ed3 \u6784 \u4f53 \u548c \u6570 \u636e \u6570 \u7ec4 \u7684 \u5185 \u5b58\u3002 \u521d \u59cb \u5316 front \u548c rear \u4e3a 0\u3002 \u6570 \u7ec4 \u5927 \u5c0f \u8bbe \u4e3a k&#043;1&#xff0c;\u9632 \u6b62 \u7a7a \u6ee1 \u5224 \u65ad \u51b2 \u7a81\u3002 3\u3001\u7a7a \u961f \u5217 \u4e0e \u6ee1 \u961f \u5217 \u5224 \u65ad \u7a7a \u961f \u5217&#xff1a;\u9996 \u5c3e \u6307 \u9488 \u6307 \u5411 \u540c \u4e00 \u4f4d \u7f6e\u3002 \u6ee1 \u961f \u5217&#xff1a;\u961f \u5c3e \u4e0b \u4e00 \u4e2a \u4f4d \u7f6e&#xff08;\u53d6 \u6a21 \u540e&#xff09;\u7b49 \u4e8e \u961f \u5934\u3002 4\u3001\u5165 \u961f \u64cd \u4f5c \u5148 \u68c0 \u67e5 \u961f \u5217 \u662f \u5426 \u5df2 \u6ee1\u3002 \u5c06 \u503c \u5b58 \u5165 rear \u6307 \u5411 \u7684 \u4f4d \u7f6e&#xff0c;\u7136 \u540e rear \u540e \u79fb\u3002 \u901a \u8fc7 \u53d6 \u6a21 \u5b9e \u73b0 rear \u7684 \u5faa \u73af \u79fb \u52a8\u3002 5\u3001\u51fa \u961f \u64cd \u4f5c \u5148 \u68c0 \u67e5 \u961f \u5217 \u662f \u5426 \u4e3a \u7a7a\u3002 front \u6307 \u9488 \u540e \u79fb&#xff0c;\u901a \u8fc7 \u53d6 \u6a21 \u5b9e \u73b0 \u5faa \u73af \u79fb \u52a8\u3002 6\u3001\u83b7 \u53d6 \u961f \u5934 \u548c \u961f \u5c3e \u5143 \u7d20 \u961f \u5934 \u5143 \u7d20&#xff1a;\u76f4 \u63a5 \u53d6 front \u6307 \u5411 \u7684 \u5143 \u7d20 \u961f \u5c3e \u5143 \u7d20&#xff1a;\u9700 \u8ba1 \u7b97 rear \u524d \u4e00 \u4e2a \u4f4d \u7f6e&#xff0c;\u5904 \u7406 rear&#061;0 \u7684 \u8fb9 \u754c \u60c5 \u51b5\u3002 7\u3001\u5185 \u5b58 \u91ca \u653e \u5148 \u91ca \u653e \u6570 \u636e \u6570 \u7ec4&#xff0c;\u518d \u91ca \u653e \u961f \u5217 \u7ed3 \u6784 \u4f53<\/p>\n<hr \/>\n<p>\u5173 \u952e \u7ec6 \u8282 \u89e3 \u6790<\/p>\n<p>\u6570 \u7ec4 \u5927 \u5c0f \u4e3a k&#043;1 \u7684 \u539f \u56e0&#xff1a; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u82e5 \u6570 \u7ec4 \u5927 \u5c0f \u4e3a k&#xff0c;\u7a7a \u961f \u5217 \u548c \u6ee1 \u961f \u5217 \u7684 \u6761 \u4ef6 \u90fd \u4f1a \u662f front &#061;&#061; rear&#xff0c;\u65e0 \u6cd5 \u533a \u5206 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u9884 \u7559 \u4e00 \u4e2a \u7a7a \u4f4d \u540e&#xff0c;\u6ee1 \u961f \u5217 \u6761 \u4ef6 \u53d8 \u4e3a (rear&#043;1)%(k&#043;1) &#061;&#061; front&#xff0c;\u4e0e \u7a7a \u961f \u5217 \u6761 \u4ef6 \u533a \u5206 \u5f00\u3002<\/p>\n<p>\u6307 \u9488 \u79fb \u52a8 \u7684 \u53d6 \u6a21 \u8fd0 \u7b97&#xff1a;<\/p>\n<p>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear <span class=\"token operator\">%&#061;<\/span> <span class=\"token punctuation\">(<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>  <span class=\"token comment\">\/\/ \u5165\u961f\u65f6rear\u540e\u79fb<\/span><br \/>\nobj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>front <span class=\"token operator\">%&#061;<\/span> <span class=\"token punctuation\">(<\/span>obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u51fa\u961f\u65f6front\u540e\u79fb<\/span><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5f53 \u6307 \u9488 \u5230 \u8fbe \u6570 \u7ec4 \u672b \u5c3e \u65f6&#xff0c;\u53d6 \u6a21 \u8fd0 \u7b97 \u4f7f \u5176 \u56de \u5230 \u6570 \u7ec4 \u5f00 \u5934&#xff0c;\u5b9e \u73b0 \u5faa \u73af \u6548 \u679c\u3002<\/p>\n<p>\u961f \u5c3e \u5143 \u7d20 \u7684 \u8ba1 \u7b97&#xff1a;<\/p>\n<p>int x <span class=\"token operator\">&#061;<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">?<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>k <span class=\"token operator\">:<\/span> obj<span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span>rear <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5f53 rear &#061; 0 \u65f6&#xff0c;\u961f \u5c3e \u5143 \u7d20 \u5728 \u6570 \u7ec4 \u672b \u5c3e&#xff08;\u7d22 \u5f15 \u4e3a k&#xff09;\u3002 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u5426 \u5219&#xff0c;\u961f \u5c3e \u5143 \u7d20 \u5728 rear &#8211; 1 \u4f4d \u7f6e\u3002<\/p>\n<hr \/>\n<p>\u590d \u6742 \u5ea6 \u5206 \u6790 \u65f6 \u95f4 \u590d \u6742 \u5ea6&#xff1a;\u6240 \u6709 \u64cd \u4f5c \u5747 \u4e3a O(1)&#xff0c;\u4ec5 \u6d89 \u53ca \u7b80 \u5355 \u7684 \u6307 \u9488 \u79fb \u52a8 \u548c \u53d6 \u6a21 \u8fd0 \u7b97\u3002 \u7a7a \u95f4 \u590d \u6742 \u5ea6&#xff1a;O(k)&#xff0c;\u7528 \u4e8e \u5b58 \u50a8 \u961f \u5217 \u5143 \u7d20 \u7684 \u6570 \u7ec4\u3002<\/p>\n<hr \/>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/06\/20250618013324-685217645ad13.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<h2>\u603b \u7ed3<\/h2>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u81f3 \u6b64&#xff0c;\u5173 \u4e8e \u6808 \u548c \u961f \u5217 \u7684 \u63a2 \u7d22 \u6682 \u544a \u4e00 \u6bb5 \u843d&#xff0c;\u4f46 \u4f60 \u7684 \u7f16 \u7a0b \u5f81 \u7a0b \u624d \u521a \u521a \u542f \u822a\u3002\u7f16 \u5199 \u4ee3 \u7801 \u662f \u4e0e \u8ba1 \u7b97 \u673a \u903b \u8f91 \u6df1 \u5ea6 \u5bf9 \u8bdd&#xff0c;\u8fc7 \u7a0b \u4e2d \u867d \u4f1a \u5728 \u7ed3 \u6784 \u8bbe \u8ba1\u3001\u7b97 \u6cd5 \u5b9e \u73b0 \u7684 \u56f0 \u5883 \u91cc \u6323 \u624e&#xff0c;\u4f46 \u8fd9 \u4e9b \u78e8 \u783a \u52a0 \u6df1 \u4e86 \u5bf9 \u4ee3 \u7801 \u903b \u8f91 \u548c \u6570 \u636e \u7ec4 \u7ec7 \u7684 \u7406 \u89e3\u3002\u613f \u4f60 \u5408 \u4e0a \u7535 \u8111 \u540e&#xff0c;\u7075 \u611f \u4e0d \u65ad&#xff0c;\u5728 \u6570 \u636e \u7ed3 \u6784 \u7684 \u4e16 \u754c \u91cc \u6301 \u7eed \u6df1 \u8015&#xff0c;\u4e66 \u5199 \u5c5e \u4e8e \u81ea \u5df1 \u7684 \u7f16 \u7a0b \u4f20 \u5947&#xff0c;\u4e0b \u4e00 \u6b21 \u5f00 \u542f&#xff0c;\u5b9a \u6709 \u5168 \u65b0 \u7684 \u7cbe \u5f69 \u7b49 \u5f85\u3002\u5c0f \u7f16 \u671f \u5f85 \u91cd \u9022&#xff0c;\u76fc \u4e0b \u6b21 \u9605 \u8bfb \u65f6 \u89c1 \u8bc1 \u4f60 \u4eec \u66f4 \u5927 \u7684 \u8fdb \u6b65&#xff0c;\u5171 \u8d74 \u4ee3 \u7801 \u4e4b \u7ea6&#xff01;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb514\u6b21\uff0c\u70b9\u8d5e30\u6b21\uff0c\u6536\u85cf15\u6b21\u3002\u8fd9\u7bc7\u535a\u5ba2\u4e3b\u8981\u8bb2\u4e864\u9053\u5173\u4e8e\u6808\u548c\u961f\u5217\u7684\u7ecf\u5178\u9898\u76ee<\/p>\n","protected":false},"author":2,"featured_media":44261,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[2692,4120,427],"topic":[],"class_list":["post-44263","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-leetcode","tag-4120","tag-427"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/44263.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb514\u6b21\uff0c\u70b9\u8d5e30\u6b21\uff0c\u6536\u85cf15\u6b21\u3002\u8fd9\u7bc7\u535a\u5ba2\u4e3b\u8981\u8bb2\u4e864\u9053\u5173\u4e8e\u6808\u548c\u961f\u5217\u7684\u7ecf\u5178\u9898\u76ee\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/44263.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-18T01:33:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/06\/20250618013322-685217627b215.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/44263.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/44263.html\",\"name\":\"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2025-06-18T01:33:27+00:00\",\"dateModified\":\"2025-06-18T01:33:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/44263.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/44263.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/44263.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - - - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/44263.html","og_locale":"zh_CN","og_type":"article","og_title":"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb514\u6b21\uff0c\u70b9\u8d5e30\u6b21\uff0c\u6536\u85cf15\u6b21\u3002\u8fd9\u7bc7\u535a\u5ba2\u4e3b\u8981\u8bb2\u4e864\u9053\u5173\u4e8e\u6808\u548c\u961f\u5217\u7684\u7ecf\u5178\u9898\u76ee","og_url":"https:\/\/www.wsisp.com\/helps\/44263.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2025-06-18T01:33:27+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/06\/20250618013322-685217627b215.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"12 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/44263.html","url":"https:\/\/www.wsisp.com\/helps\/44263.html","name":"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2025-06-18T01:33:27+00:00","dateModified":"2025-06-18T01:33:27+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/44263.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/44263.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/44263.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"LeetCode \u7b97 \u6cd5 \u5b9e \u6218 - - - \u6709 \u6548 \u7684 \u62ec \u53f7\u3001\u7528 \u961f \u5217 \u5b9e \u73b0 \u6808\u3001\u7528 \u6808 \u5b9e \u73b0 \u961f \u5217 \u548c \u8bbe \u8ba1 \u5faa \u73af \u961f \u5217"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/44263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=44263"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/44263\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/44261"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=44263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=44263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=44263"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=44263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}