{"id":560,"date":"2007-03-15T11:30:00","date_gmt":"2007-03-15T03:30:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=560"},"modified":"2023-11-04T11:32:48","modified_gmt":"2023-11-04T03:32:48","slug":"stack-queue","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/560","title":{"rendered":"Stack Queue"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>stack<\/strong>:LIFO(last in first out,\u5f8c\u9032\u5148\u51fa)<br>\u8aaa\u660e:\u4e00\u7a2e\u6709\u5e8f\u4e32\u5217,\u4f46\u9650\u5236\u63d2\u5165\u904b\u4f5c\u548c\u522a\u9664\u904b\u4f5c\u800c\u5728top(\u9802\u7aef)\u9032\u884c,\u4e5f\u5c31\u662f\u6700\u5f8c\u63d2\u5165\u7684\u8cc7\u6599\u6703\u5148\u88ab\u79fb\u8d70<br>\u61c9\u7528:\u526f\u7a0b\u5f0f\u7684\u547c\u53eb\u8207\u8fd4\u56de,\u905e\u8ff4\u526f\u7a0b\u5f0f\u7684\u8655\u7406,\u904b\u7b97\u5f0f\u7684\u8a08\u7b97&#8230;<br>\u4e3b\u8981\u904b\u4f5c:\u5ba3\u544a\u4e00\u500b\u7a7a\u5806\u758a,\u63d2\u5165,\u53d6\u51fa,\u5224\u5225\u662f\u5426\u70ba\u7a7a,\u56de\u50b3\u9802\u7aef\u8cc7\u6599&#8230;<br>ps:\u82e5\u5c07\u4f47\u5217\u7684\u63d2\u5165\u904b\u4f5c\u548c\u522a\u9664\u904b\u4f5c\u90fd\u767c\u751f\u5728\u5c3e\u7aef,\u53ca\u53ef\u9054\u5230\u5806\u758a\u7684\u6548\u679c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u93c8\u7d50\u8868\u793a\u7684\u904b\u4f5c<br>void push(int x){<br>\u3000struct node *temp;<br>\u3000temp=(struct node *)malloc(sizeof(struct node)); \/\/\u7522\u751f\u65b0\u7bc0\u9ede<br>\u3000temp-&gt;data=x;<br>\u3000temp-&gt;next=top; \/\/\u5c07\u65b0\u7bc0\u9ede\u6307\u5411top\u6240\u6307\u7bc0\u9ede<br>\u3000top=temp; \/\/\u5c07top\u8b8a\u6578\u6539\u6210\u6307\u5411\u65b0\u7bc0\u9ede<br>}<br>int pop(void){<br>\u3000int x; struct node *temp;<br>\u3000if(top==null){ printf(stack is empty); } \/\/\u5224\u65b7\u662f\u5426\u70ba\u7a7a<br>\u3000else{<br>\u3000\u3000temp=top; \/\/\u5c07temp\u6307\u5411top\u6240\u6307\u7bc0\u9ede<br>\u3000\u3000top=temp-&gt;next; \/\/\u5c07top\u7bc0\u9ede\u8b8a\u6210\u7684\u6307\u5411\u4e0b\u4e00\u500b\u7bc0\u9ede<br>\u3000\u3000x=temp-&gt;data;<br>\u3000\u3000free(temp); \/\/\u6b78\u9084temp\u6240\u6307\u7bc0\u9ede<br>\u3000}<br>\u3000return(x);<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u524d\u5e8f,\u4e2d\u5e8f,\u5f8c\u5e8f\u8f49\u63db\u53ca\u8a08\u7b97<br>\u4e2d\u5e8f\u8f49\u5f8c\u5e8f<br>ex:a+e*c\/d-e<br>1, ((a+((e*c)\/d))-e) \/\/\u4f9d\u904b\u7b97\u9806\u5e8f\u52a0\u62ec\u865f<br>2 , aec*d\/+e- \/\/\u5c07\u5404\u904b\u7b97\u5b50\u79fb\u5230\u5c0d\u61c9\u7684\u53f3\u62ec\u865f<br>\u4e2d\u5e8f\u8f49\u524d\u5e8f\u6f14\u7b97\u6cd5<br>1,\u5c07\u4e2d\u5e8f\u904b\u7b97\u5f0f\u5148\u53cd\u8f49,\u9054\u5230\u7531\u5f8c\u5411\u524d\u8655\u7406\u7684\u9806\u5e8f<br>2,\u5728\u5c3e\u7aef\u653e\u4e0a\u4e00\u7d50\u675f\u7b26\u865f<br>3,\u5c07\u503c\u53d6\u51fa\u4e00\u76f4\u5230\u78b0\u5230\u7d50\u675f\u7b26\u865f<br>4,\u5047\u5982\u503c\uff1d\u6578\u5b57,\u5247\u5c07\u6578\u5b57\u653e\u5165result\u7684\u5806\u758a\u4e2d<br>\u5047\u5982\u503c\uff1d\u904b\u7b97\u7b26\u865f,\u5247\u5c07\u904b\u7b97\u7b26\u865f\u653e\u5165expr\u7684\u5806\u758a\u4e2d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><strong>queue<\/strong>:FIFO(first in first out,\u5148\u9032\u5148\u51fa)<br>\u8aaa\u660e:\u4e00\u7a2e\u6709\u5e8f\u4e32\u5217\uff0c\u4f46\u9650\u5236\u63d2\u5165\u904b\u4f5c\u5728rear(\u5c3e\u7aef),\u800c\u522a\u9664\u904b\u4f5c\u5728front(\u524d\u7aef),\u4e5f\u5c31\u662f\u7b2c\u4e00\u500b\u63d2\u5165\u7684\u8cc7\u6599\u6703\u5148\u88ab\u79fb\u8d70<br>\u61c9\u7528:\u5de5\u4f5c\u5143\u7684\u898f\u756b,\u8f38\u5165\u8f38\u51fa\u8981\u6c42\u7684\u8655\u7406,\u96fb\u8166\u6a21\u64ec\u7cfb\u7d71\u7684\u57f7\u884c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ps:<br>priority queue<br>\u5728fifo\u4e2d\u5728\u589e\u52a0\u4e00\u500bpriority\u5143\u7d20<br>\u7528\u9014:\u63d0\u4f9binsert,delete,search\u904b\u4f5c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7528\u5faa\u5e8f\u8868\u793a\u6cd5\u4f86\u8868\u793a\u4e00\u500b\u4f47\u5217<br>\u4e8b\u5148\u5ba3\u544a:<br>datatype queue[1-n]; \/\/\u5ba3\u544a\u80fd\u5b58\u653en\u500b\u8cc7\u6599\u7684\u9663\u5217<br>int front=1; \/\/\u6307\u5411\u8981\u53d6\u51fa\u8cc7\u6599\u7684\u4f4d\u7f6e<br>int rear=1; \/\/\u6307\u5411\u8981\u63d2\u5165\u8cc7\u6599\u7684\u4f4d\u7f6e<br><strong>\u4f7f\u7528\u7dda\u6027\u4f47\u5217\u6642:<\/strong><br>rear=rear+1 \/\/\u63d2\u5165\u8cc7\u6599\u6642+1<br>front=front+1 \/\/\u53d6\u51fa\u8cc7\u6599\u6642+1<br>\u7576front=rear\u6642\u8868empty<br>\u800crear=n\u6642\u8868\u793a\u5df1\u6eff,\u82e5\u5de6\u908a\u6709\u7a7a\u9593\u5247\u5c07\u8cc7\u6599\u5de6\u79fb,\u4f46\u9019\u65b9\u6cd5\u5341\u5206\u6c92\u6548\u7387<br><strong>\u4f7f\u7528\u74b0\u72c0\u4f47\u5217circular\u6642:<\/strong><br>rear=(rear mod n)+1 \/\/\u63d2\u5165\u8cc7\u6599\u6642+1,\u4f46\u7576rear\u70ban\u6642,\u4e0b\u4e00\u500b\u63d2\u5165\u8cc7\u6599\u7684\u4f4d\u7f6e\u5c31\u6703\u5728\u6700\u5de6\u908a<br>front=(front mod n)+1 \/\/\u53d6\u51fa\u8cc7\u6599\u6642+1,\u4f46front\u7684\u503c\u5230n\u5f8c\u6703\u81ea\u52d5\u8b8a\u56de1<br>\u7576front=rear\u6642\u8868empty<br>\u5224\u65b7\u662f\u5426\u6709\u6eff\u7684\u65b9\u6cd5:<br>1,\u53ea\u5141\u8a31n-1\u500b\u8cc7\u6599\u653e\u5165\u4f47\u5217,\u4e5f\u5c31\u662f(rear mod n)+1==front\u6642\u5247\u8868\u793a\u6eff<br>2,\u52a0\u5165count\u8b8a\u6578,\u8868\u793a\u76ee\u524d\u4f47\u5217\u5167\u8cc7\u6599\u500b\u6578<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">queue\u5faa\u5e8f\u8868\u793a\u6cd5<br>\u63d2\u5165\u8cc7\u6599<br>void insert(int x){<br>\u3000temp=(rear mod n)+1; \/\/1\u5c07rear\u9664n\u53d6\u9918\u6578+1<br>\u3000if(temp==front){printf(&#8220;queue is full&#8221;);} \/\/2,\u5224\u65b7\u662f\u5426\u5df1\u6eff,\u82e5\u6eff\u5247\u5be6\u969b\u8cc7\u6599\u53ea\u6709n-1\u500b,\u4e26\u4e14\u4e0d\u8981\u5c07rear\u52a01(\u56e0\u70ba\u53d6\u8cc7\u6599\u6642\u6703\u88ab\u8aa4\u5224\u70ba\u7a7a)<br>\u3000else{<br>\u3000\u3000rear=temp; \/\/\u82e5\u6c92\u6eff\u624d\u53ef\u5c07rear\u52a01<br>\u3000\u3000queue[rear]=x; \/\/3\u5c07\u8cc7\u6599\u5b58\u653e\u5230rear\u5b58\u6307\u4f4d\u7f6e<br>\u3000}<br>}<br>\u53d6\u51fa\u8cc7\u6599<br>void delete(){<br>\u3000if(rear==front){printr(&#8220;queue is empty&#8221;);} \/\/1\u5224\u65b7\u662f\u5426\u70ba\u7a7a<br>\u3000else{<br>\u3000\u3000front=(front mod n)+1; \/\/2\u5c07front\u9664n\u53d6\u9918\u6578+1<br>\u3000\u3000return(queue[front]); \/\/3\u53d6\u51fa\u8cc7\u6599<br>\u3000}<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/\u74b0\u72c0queue\u7684\u52a0\u5165\u8cc7\u6599\uff0cp\u6307\u6700\u665a\u52a0\u5165\u7bc0\u9ede\uff0c\u56e0\u70ba\u662f\u74b0\u72c0\u6240\u4ee5p-&gt;link\u5247\u6307\u5230\u7b2c\u4e00\u500b\u52a0\u5165\u7684\u7bc0\u9ede<br>void add(int x){<br>\u3000struct node *temp;<br>\u3000temp=(struct node *)malloc(sizeof(struct node)); \/\/\u7522\u751f\u65b0\u7bc0\u9ede<br>\u3000temp-&gt;data=x;<br>\u3000if(p==nil){ temp-&gt;link=temp;} \/\/\u82e5queue\u70ba\u7a7a\uff0c\u5247\u6307\u5411\u81ea\u5df1<br>\u3000else{<br>\u3000\u3000temp-&gt;link=p-&gt;link; \/\/\u8b93\u65b0\u7bc0\u9edetemp\u6307\u5230\u7b2c\u4e00\u500b\u52a0\u5165\u7684\u7bc0\u9ede<br>\u3000\u3000p-&gt;link=temp; \/\/\u8b93\u539f\u672c\u6700\u665a\u52a0\u5165\u7684\u7bc0\u9ede\u6307\u5230\u65b0\u7bc0\u9ede<br>\u3000}<br>\u3000p=temp; \/\/\u8a18\u4f4f\u6700\u5f8c\u4e00\u500b\u7bc0\u9ede<br>}<br>\/\/\u74b0\u72c0queue\u522a\u9664\u6216\u53d6\u51fa\u8cc7\u6599<br>int delete(){<br>\u3000struct node *temp;int x;<br>\u3000if(p==nil){print(&#8220;the quese is empty&#8221;) ;}<br>\u3000else{<br>\u3000\u3000temp=p-&gt;link; \/\/\u628a\u6700\u524d\u9762\u7684\u7bc0\u9ede\u7d66temp\u7bc0\u9ede<br>\u3000\u3000x=temp-&gt;data; \/\/\u82e5\u8981\u56de\u50b3\u8cc7\u6599\u5247\u52a0<br>\u3000\u3000if(temp==p){p=nil;} \/\/\u82e5\u53ea\u6709\u4e00\u500b\u7bc0\u9ede\uff0c\u7b49\u4e0b\u5c31\u6703\u6d88\u5931<br>\u3000\u3000else{<br>\u3000\u3000\u3000p-&gt;link=temp-&gt;link; \/\/\u5c07\u6700\u524d\u9762\u7bc0\u9ede\u7684\u4e0b\u500b\u7bc0\u9ede\u4f4d\u7f6e\u7d66\u6700\u5f8c\u7bc0\u9ede<br>\u3000\u3000\u3000free(temp);<br>\u3000\u3000\u3000return(x); \/\/\u82e5\u8981\u56de\u50b3\u8cc7\u6599\u5247\u52a0<br>\u3000\u3000}<br>\u3000}<br>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>stack:LIFO(last in first out,\u5f8c &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[15],"tags":[],"class_list":["post-560","post","type-post","status-publish","format-standard","hentry","category-algorithm"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":562,"url":"https:\/\/systw.net\/note\/archives\/562","url_meta":{"origin":560,"position":0},"title":"Tree","author":"raymond","date":"2007 \u5e74 3 \u6708 5 \u65e5","format":false,"excerpt":"\u6a39\u72c0\u7d50\u69cb general tree(\u4e00\u822c\u6a39)\u5b9a\u7fa9:\u4e00\u7fa4\u7bc0\u9ede\u6240\u5f62\u6210\u4e4b\u96c6\u5408,\u81f3\u5c11\u4e00\u500b\u7bc0\u9ede(\u6a39\u6839),\u6bcf\u500b\u96c6\u2026","rel":"","context":"\u5728\u300c\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5\u300d\u4e2d","block_context":{"text":"\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5","link":"https:\/\/systw.net\/note\/archives\/category\/develop\/algorithm"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":558,"url":"https:\/\/systw.net\/note\/archives\/558","url_meta":{"origin":560,"position":1},"title":"Array Linklist","author":"raymond","date":"2007 \u5e74 3 \u6708 15 \u65e5","format":false,"excerpt":"array(\u9663\u5217)\u5927\u5c0f\u56fa\u5b9a,\u5404\u5143\u7d20\u578b\u5225\u9700\u76f8\u540c,\u53ef\u76f4\u63a5\u5b58\u53d6\u67d0\u5143\u7d20\u8aaa\u660e:\u4e00\u7fa4\u76f8\u540c\u8cc7\u6599\u578b\u614b\u7684\u8cc7\u6599\u5b58\u5728\u9023\u7e8c\u7684\u2026","rel":"","context":"\u5728\u300c\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5\u300d\u4e2d","block_context":{"text":"\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5","link":"https:\/\/systw.net\/note\/archives\/category\/develop\/algorithm"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":566,"url":"https:\/\/systw.net\/note\/archives\/566","url_meta":{"origin":560,"position":2},"title":"Search","author":"raymond","date":"2007 \u5e74 3 \u6708 15 \u65e5","format":false,"excerpt":"\u975c\u614b\u641c\u5c0b\u6cd5\u5c0d\u975c\u614b\u6a94\u6848(\u7528\u5faa\u5e8f\u8868\u793a\u6cd5\u5132\u5b58)\u9032\u884c\u641c\u5c0b \u5faa\u5e8f\u641c\u5c0b\u6cd5\u6642\u9593\u8907\u96dc\u5ea6\u6700\u5dee\u6700\u597d\u60c5\u6cc1\u7686\u70babigO(N)\u2026","rel":"","context":"\u5728\u300c\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5\u300d\u4e2d","block_context":{"text":"\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5","link":"https:\/\/systw.net\/note\/archives\/category\/develop\/algorithm"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":568,"url":"https:\/\/systw.net\/note\/archives\/568","url_meta":{"origin":560,"position":3},"title":"Sort","author":"raymond","date":"2007 \u5e74 3 \u6708 5 \u65e5","format":false,"excerpt":"\u5b9a\u7fa9stable sort(\u7a69\u5b9a\u7684\u6392\u5e8f\u6cd5):\u82e5\u6709\u76f8\u540c\u8cc7\u6599\uff0c\u5247\u76f8\u5c0d\u4f4d\u7f6e\u4e0d\u6703\u6539\u8b8acomparison s\u2026","rel":"","context":"\u5728\u300c\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5\u300d\u4e2d","block_context":{"text":"\u8cc7\u6599\u7d50\u69cb\u8207\u6f14\u7b97\u6cd5","link":"https:\/\/systw.net\/note\/archives\/category\/develop\/algorithm"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2542,"url":"https:\/\/systw.net\/note\/archives\/2542","url_meta":{"origin":560,"position":4},"title":"Solidity and Remix","author":"raymond","date":"2024 \u5e74 8 \u6708 10 \u65e5","format":false,"excerpt":"Solidity \u7684\u904b\u4f5c\u65b9\u5f0f\u53ef\u4ee5\u5206\u89e3\u70ba\u4e09\u500b\u4e3b\u8981\u6b65\u9a5f\uff1a\u7de8\u5beb\u3001\u7de8\u8b6f \u548c \u57f7\u884c\u3002\u958b\u767c\u8005\u80fd\u7528\u4eba\u985e\u80fd\u61c2\u7684\u8a9e\u8a00\u5beb\u2026","rel":"","context":"\u5728\u300cSmart Contract\u300d\u4e2d","block_context":{"text":"Smart Contract","link":"https:\/\/systw.net\/note\/archives\/category\/%e5%8d%80%e5%a1%8a%e9%8f%88\/smart-contract-develop"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":403,"url":"https:\/\/systw.net\/note\/archives\/403","url_meta":{"origin":560,"position":5},"title":"buffer overflow","author":"raymond","date":"2010 \u5e74 3 \u6708 10 \u65e5","format":false,"excerpt":"buffer overflow concepts\u9020\u6210\u7de9\u885d\u5340\u6ea2\u4f4d\u7684\u76ee\u7684\u662f\u6539\u8b8a\u7a0b\u5e8f\u6d41\u7a0b\uff0c\u4f7f\u7de9\u885d\u5340\u6ea2\u4f4d\u5f8c\u57f7\u2026","rel":"","context":"\u5728\u300cConcept\u300d\u4e2d","block_context":{"text":"Concept","link":"https:\/\/systw.net\/note\/archives\/category\/hackerthreat\/concept"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=560"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/560\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}