{"id":11921,"date":"2016-12-01T00:00:00","date_gmt":"2016-11-30T16:00:00","guid":{"rendered":"https:\/\/fgchen.com\/wpedu2\/2016\/12\/01\/%e3%80%90%e8%b3%87%e6%96%99%e7%b5%90%e6%a7%8b%e3%80%91%e4%bd%87%e5%88%97queue%e4%bb%8b%e7%b4%b9%e8%88%87%e4%bd%bf%e7%94%a8\/"},"modified":"2026-03-30T14:54:09","modified_gmt":"2026-03-30T06:54:09","slug":"%e3%80%90%e8%b3%87%e6%96%99%e7%b5%90%e6%a7%8b%e3%80%91%e4%bd%87%e5%88%97queue%e4%bb%8b%e7%b4%b9%e8%88%87%e4%bd%bf%e7%94%a8","status":"publish","type":"post","link":"https:\/\/fgchen.com\/wpedu\/2016\/12\/%e3%80%90%e8%b3%87%e6%96%99%e7%b5%90%e6%a7%8b%e3%80%91%e4%bd%87%e5%88%97queue%e4%bb%8b%e7%b4%b9%e8%88%87%e4%bd%bf%e7%94%a8\/","title":{"rendered":"\u3010\u8cc7\u6599\u7d50\u69cb\u3011\u4f47\u5217(Queue)\u4ecb\u7d39\u8207\u4f7f\u7528"},"content":{"rendered":"<div class=\"table-title\">\n<h3>\u751f\u6d3b\u4e2d\u7684\u5404\u7a2e\u4f47\u5217<\/h3>\n<\/div>\n\n<table class=\"table-fill\">\n<thead>\n<tr>\n<th class=\"text-left\">\u7cfb\u7d71<\/th>\n<th class=\"text-left\">\u5ba2\u6236<\/th>\n<th class=\"text-left\">\u670d\u52d9\u8005<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"table-hover\">\n<tr>\n<td class=\"text-left\">\u63a5\u5f85\u6ac3\u53f0<\/td>\n<td class=\"text-left\">\u4e00\u822c\u4eba\u54e1<\/td>\n<td class=\"text-left\">\u63a5\u5f85\u4eba\u54e1<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">\u8cfc\u7968\u6ac3\u53f0(\u9ad8\u9435\u3001\u53f0\u9435\u3001\u6232\u9662\u2026)<\/td>\n<td class=\"text-left\">\u8cfc\u7968\u8005<\/td>\n<td class=\"text-left\">\u552e\u7968\u670d\u52d9\u4eba\u54e1<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">\u91ab\u9662<\/td>\n<td class=\"text-left\">\u75c5\u60a3<\/td>\n<td class=\"text-left\">\u8b77\u7406\u5e2b<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">\u6a5f\u5834<\/td>\n<td class=\"text-left\">\u98db\u6a5f<\/td>\n<td class=\"text-left\">\u98db\u6a5f\u8dd1\u9053<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">\u9053\u8def\u7db2<\/td>\n<td class=\"text-left\">\u6c7d\u8eca<\/td>\n<td class=\"text-left\">\u4ea4\u901a\u865f\u8a8c\u71c8<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">\u8d85\u5e02\u3001\u6524\u8ca9<\/td>\n<td class=\"text-left\">\u8cfc\u8cb7\u8005<\/td>\n<td class=\"text-left\">\u7d50\u5e33\u6ac3\u53f0<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">\u96fb\u8166<\/td>\n<td class=\"text-left\">\u5de5\u4f5c<\/td>\n<td class=\"text-left\">CPU, disk, printer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<h2>Queue\u7684\u7a2e\u985e<\/h2>\n\n<ul>\n    <li>Multiple queues, multiple servers,\u53f0\u9435\u552e\u7968\u3001\u91cf\u8ca9\u5e97\/\u7d71\u806f\u7d50\u5e33\u6ac3\u53f0<\/li>\n    <li>Single queue, multiple servers\uff0c\u9ad8\u9435\u552e\u7968\u3001<\/li>\n    <li>Single queue, single server, \u5c0f\u578b\u5546\u5e97\u3001\u6524\u8ca9\u2026<\/li>\n    <li>Priority queues<\/li>\n<\/ul>\n\n<h2>C# Queue\u985e\u5225<\/h2>\n\nC#\u00a0System.Collection\u00a0\u547d\u540d\u7a7a\u9593\u88cf\u63d0\u4f9b\u4e86\u4e00\u500bQueue\u985e\u5225\uff0c\u5be6\u73fe\u5728\u4f47\u5217\u5148\u9032\u884c\u51fa\u7684\u6982\u5ff5(FIFO\uff0cFirst In First Out)\uff0c\u548c\u5806\u758aStack\u00a0\u7684\u64cd\u4f5c(\u5f8c\u9032\u5148\u51fa)\u5b8c\u5168\u4e0d\u4e00\u6a23\u3002Queue\u985e\u5225\u4e5f\u662f\u4e00\u500b\u6709\u5e8f\u96c6\u5408\u7269\u4ef6\u3002\nQueue\u96c6\u5408\u985e\u5225\u5141\u8a31\u591a\u500bnull\/\u7a7a\u503c\uff0c\u4e14\u5141\u8a31\u91cd\u8907\u7684\u503c\uff0c\u63d0\u4f9bEnqueue() \u65b9\u6cd5\u4f86\u52a0\u5165\u503c\u5230Queue\u96c6\u5408\u7269\u4ef6\u4e2d\uff0cDequeue() \u65b9\u6cd5\u5f9eQueue\u96c6\u5408\u7269\u4ef6\u4e2d\u53d6\u51fa\u8cc7\u6599\u3002\n&nbsp;\n<img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-3138 aligncenter\" src=\"http:\/\/www.fgchen.com\/wp\/wp-content\/uploads\/2016\/12\/120116_0009_Queue1.png\" alt=\"120116_0009_Queue1.png\" width=\"460\" height=\"221\" \/>\n&nbsp;\n\n<div class=\"table-title\">\n<h3>Queue\u91cd\u8981\u7684\u5c6c\u6027\u8207\u65b9\u6cd5<\/h3>\n<\/div>\n\n<table class=\"table-fill\">\n<thead>\n<tr>\n<th class=\"text-left\">\u65b9\u6cd5 \u6216 \u5c6c\u6027<\/th>\n<th class=\"text-left\">\u7528\u9014<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"table-hover\">\n<tr>\n<td class=\"text-left\">Count<\/td>\n<td class=\"text-left\">\u50b3\u56deQueue\u96c6\u5408\u7269\u4ef6\u4e2d\u7684\u5143\u7d20\u6578\u91cf<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">Enqueue<\/td>\n<td class=\"text-left\">\u52a0\u5165\u4e00\u500b\u9805\u76ee\u5230queue\u4e2d<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">Dequeue<\/td>\n<td class=\"text-left\">\u5f9equeue\u7684\u524d\u7aef\u53d6\u51fa\u4e00\u500b\u9805\u76ee\u4e26\u522a\u9664\u8a72\u9805\u76ee<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">Peek<\/td>\n<td class=\"text-left\">\u5f9equeue\u7684\u524d\u7aef\u53d6\u51fa\u4e00\u500b\u9805\u76ee(\u4e0d\u522a\u9664\u8a72\u9805\u76ee)<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">Contains<\/td>\n<td class=\"text-left\">\u6aa2\u67e5queue\u662f\u5426\u5305\u542b\u67d0\u4e00\u500b\u7279\u5b9a\u9805\u76ee<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">Clear<\/td>\n<td class=\"text-left\">\u6e05\u9664queue\u6240\u6709\u7684\u9805\u76ee<\/td>\n<\/tr>\n<tr>\n<td class=\"text-left\">TrimToSize<\/td>\n<td class=\"text-left\">\u8abf\u6574queue\u7684\u5927\u5c0f\u5230\u5be6\u969b\u5132\u5b58\u9805\u76ee\u7684\u5927\u5c0f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<h2>\u52a0\u5165\u9805\u76ee\u5230 Queue\u4e2d:<\/h2>\n\nQueue \u662f\u4e00\u500b\u975e\u6cdb\u578b\u7684\u96c6\u5408(non-generic collection)\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528Enqueue()\u65b9\u6cd5\u52a0\u5165\u4efb\u4f55\u8cc7\u6599\u5f62\u614b\u7684\u5143\u7d20\u5230queue\u4e2d\u3002\nEnqueue() \u7c3d\u540d:\u00a0void Enqueue(object obj)\n\n<h3>Enqueue()\u7bc4\u4f8b<\/h3>\n\nQueue queue = new Queue();\nqueue.Enqueue(3);\nqueue.Enqueue(2);\nqueue.Enqueue(1);\nqueue.Enqueue(&#8220;Four&#8221;);\n\n<h2><\/h2>\n\n<h2>\u5b58\u53d6Queue:<\/h2>\n\nDequeue() \u65b9\u6cd5\u5f9equeue\u7684\u524d\u7aef\u53d6\u51fa\u4e00\u500b\u9805\u76ee\u4e26\u522a\u9664\u8a72\u9805\u76ee\u3002\nDequeue() method signature:\u00a0object Dequeue()\n\n<h3>Dequeue()\u7bc4\u4f8b<\/h3>\n\nQueue queue = new Queue();\nqueue.Enqueue(3);\nqueue.Enqueue(2);\nqueue.Enqueue(1);\nqueue.Enqueue(&#8220;Four&#8221;);\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\nwhile (queue.Count &gt; 0) Console.WriteLine(queue.Dequeue());\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\n\u8f38\u51fa\uff1a\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 4\n3\n2\n1\nFour\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 0\n\n<h2>Peek():<\/h2>\n\n\u5f9equeue\u7684\u524d\u7aef\u53d6\u51fa\u4e00\u500b\u9805\u76ee(\u4e0d\u522a\u9664\u8a72\u9805\u76ee)\uff0c\u5728\u4e00\u500b\u7a7a\u7684queue\u559a\u7528Peek() \u548c Dequeue() \u65b9\u6cd5\u6703\u5c0e\u81f3\u4e00\u500b\u57f7\u884c\u6642\u671f\u7684\u4f8b\u5916\uff0c &#8220;InvalidOperationException&#8221;.\nPeek() \u65b9\u6cd5 Signature:\u00a0object Peek();\n\n<h3>Peek()\u7bc4\u4f8b\uff1a<\/h3>\n\nQueue queue = new Queue();\nqueue.Enqueue(3);\nqueue.Enqueue(2);\nqueue.Enqueue(1);\nqueue.Enqueue(&#8220;Four&#8221;);\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\nConsole.WriteLine(queue.Peek());\nConsole.WriteLine(queue.Peek());\nConsole.WriteLine(queue.Peek());\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\n\u8f38\u51fa\uff1a\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 4\n3\n3\n3\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 4\n&nbsp;\n\u5982\u679c\u4f60\u60f3\u8d70\u8a2aqueue\u4e2d\u7684\u6bcf\u4e00\u500b\u5143\u7d20\uff0c\u53c8\u4e0d\u60f3\u522a\u53bb\u5176\u4e2d\u7684\u5143\u7d20\uff0c\u53ef\u4ee5\u5c07queue\u8f49\u63db\u70ba\u4e00\u500b\u9663\u5217\uff1a\n\n<h3>\u8d70\u8a2aQueue\u7bc4\u4f8b\uff1a<\/h3>\n\nQueue queue = new\nQueue();\nqueue.Enqueue(3);\nqueue.Enqueue(2);\nqueue.Enqueue(1);\nqueue.Enqueue(&#8220;Four&#8221;);\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\nforeach (var i in queue.ToArray())\nConsole.WriteLine(i);\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\n\u8f38\u51fa\uff1a\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 4\n3\n2\n1\nFour\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 4\n\n<ul>\n    <li>\n<h3>Contains\u65b9\u6cd5<\/h3>\n<\/li>\n<\/ul>\n\nContains()\u65b9\u6cd5\u6aa2\u67e5queue\u662f\u5426\u5305\u542b\u67d0\u4e00\u500b\u7279\u5b9a\u9805\u76ee\uff0c\u6709\u7684\u8a71\u65b9\u6cd5\u56de\u50b3true\uff0c\u6c92\u6709\u7684\u8a71\u56de\u50b3false\u3002\nContains() Signature:\u00a0bool Contains(object obj);\n\n<h3>Contains\u7bc4\u4f8b<\/h3>\n\nQueue queue = new\nQueue();\nqueue.Enqueue(3);\nqueue.Enqueue(2);\nqueue.Enqueue(1);\nqueue.Enqueue(&#8220;Four&#8221;);\nqueue.Contains(2); \/\/ true\nqueue.Contains(100); \/\/false\n\n<ul>\n    <li>\n<h3>Clear()\u65b9\u6cd5\uff1a<\/h3>\n<\/li>\n<\/ul>\n\nClear()\u65b9\u6cd5\u6e05\u9664queue\u6240\u6709\u7684\u9805\u76ee\u3002\nClear() Signature:\u00a0void Clear();\n\n<h3>Clear()\u7bc4\u4f8b\uff1a<\/h3>\n\nQueue queue = new\nQueue();\nqueue.Enqueue(3);\nqueue.Enqueue(2);\nqueue.Enqueue(1);\nqueue.Enqueue(&#8220;Four&#8221;);\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\nqueue.Clear();\nConsole.WriteLine(&#8220;Queue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: {0}&#8221;, queue.Count);\n\u8f38\u51fa\uff1a\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 4\nQueue\u4e2d\u7684\u5143\u7d20\u6578\u91cf: 0\n\n<h3>\u4f7f\u7528Queue\u985e\u5225\u7684\u4f47\u5217\u5efa\u7acb\u64cd\u4f5c\u793a\u7bc4\uff1a<\/h3>\n\n<pre class=\"theme:vs2012 lang:c# decode:true \">using System;\nusing System.Collections;\nclass Program\n{\n    static void Main(string[] args)\n    {\n        \/\/\u5efa\u7acb\u4e00\u500b\u770b\u8a3a\u4f47\u5217\n        Queue myQ = new Queue();\n        myQ.Enqueue(\"\u5f35\u4e09\");\/\/\u65b0\u589e\u4eba\u54e1\u5230\u770b\u8a3a\u4f47\u5217\uff0c\u4e5f\u5c31\u662f\u52a0\u5165\u6392\u968a\u2026\n        myQ.Enqueue(\"\u674e\u56db\");\n        myQ.Enqueue(\"\u738b\u4e94\");\n        myQ.Enqueue(\"\u99ac\u516d\");\n        \/\/ \u5217\u5370\u770b\u8a3a\u4f47\u5217\u7684\u6578\u91cf\u548c\u503c\n        Console.WriteLine(\"\u5019\u8a3a\u7684\u4eba\u6578:    {0}\", myQ.Count);\n        \/\/ \u5217\u5370\u770b\u8a3a\u4f47\u5217\u4e2d\u7684\u6240\u6709\u503c\n        Console.Write(\"\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a\");\n        PrintValues(myQ);\n        \/\/ \u5217\u5370\u4f47\u5217\u4e2d\u7684\u7b2c\u4e00\u500b\u5143\u7d20\uff0c\u4e26\u79fb\u9664\n        Console.WriteLine(\"\u9032\u5165\u8a3a\u9593\u7684\u4eba\uff1at{0}\", myQ.Dequeue());\n        \/\/ \u52a0\u5165\u770b\u8a3a\u4f47\u5217\n        Console.WriteLine(\"\u8607\u5c0f\u5c0f\u52a0\u5165\u7b49\u5f85\u770b\u8a3a\u6392\u968a\u2026\");\n        myQ.Enqueue(\"\u8607\u5c0f\u5c0f\");\n        \/\/ \u5217\u5370\u770b\u8a3a\u4f47\u5217\u4e2d\u7684\u6240\u6709\u503c\n        Console.Write(\"\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a\");\n        PrintValues(myQ);\n        \/\/ \u5217\u5370\u770b\u8a3a\u4f47\u5217\u4e2d\u7684\u7b2c\u4e00\u500b\u5143\u7d20\uff0c\u4e26\u79fb\u9664\n        Console.WriteLine(\"\u9032\u5165\u8a3a\u9593\u7684\u4eba\uff1at{0}\", myQ.Dequeue());\n        \/\/ \u5217\u5370\u770b\u8a3a\u4f47\u5217\u4e2d\u7684\u6240\u6709\u503c\n        Console.Write(\"\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a\");\n        PrintValues(myQ);\n        \/\/ \u5217\u5370\u770b\u8a3a\u4f47\u5217\u4e2d\u7684\u7b2c\u4e00\u500b\u5143\u7d20\n        Console.WriteLine(\"\u4e0b\u4e00\u500b\u8981\u9032\u5165\u8a3a\u9593\u7684\u4eba(\u67e5\u8a62)\uff1a   t{0}\", myQ.Peek());\n        \/\/ \u5217\u5370\u770b\u8a3a\u4f47\u5217\u4e2d\u7684\u6240\u6709\u503c\n        Console.Write(\"\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a\");\n        PrintValues(myQ);\n        Console.ReadLine();\n    }\n    public static void PrintValues(IEnumerable myCollection)\n    {\n        foreach (Object obj in myCollection)\n            Console.Write(\"    {0}\", obj);\n        Console.WriteLine();\n    }\n}\n\/* \u7a0b\u5f0f\u7684\u8f38\u51fa\n\u5019\u8a3a\u7684\u4eba\u6578:    4\n\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a    \u5f35\u4e09    \u674e\u56db    \u738b\u4e94    \u99ac\u516d\n\u9032\u5165\u8a3a\u9593\u7684\u4eba\uff1a  \u5f35\u4e09\n\u8607\u5c0f\u5c0f\u52a0\u5165\u7b49\u5f85\u770b\u8a3a\u6392\u968a\u2026\n\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a    \u674e\u56db    \u738b\u4e94    \u99ac\u516d    \u8607\u5c0f\u5c0f\n\u9032\u5165\u8a3a\u9593\u7684\u4eba\uff1a  \u674e\u56db\n\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a    \u738b\u4e94    \u99ac\u516d    \u8607\u5c0f\u5c0f\n\u4e0b\u4e00\u500b\u8981\u9032\u5165\u8a3a\u9593\u7684\u4eba(\u67e5\u8a62)\uff1a    \u738b\u4e94\n\u76ee\u524d\u5019\u8a3a\u7684\u540d\u55ae\uff1a    \u738b\u4e94    \u99ac\u516d    \u8607\u5c0f\u5c0f\n*\/<\/pre>\n\n&nbsp;\n\n<h3>\u3010\u4f47\u5217\u5f71\u97f3\u6559\u5b78 on youtube\u3011<\/h3>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>\u751f\u6d3b\u4e2d\u7684\u5404\u7a2e\u4f47\u5217 \u7cfb\u7d71 \u5ba2\u6236 \u670d\u52d9\u8005 \u63a5\u5f85\u6ac3\u53f0 \u4e00\u822c\u4eba\u54e1 \u63a5\u5f85\u4eba\u54e1 \u8cfc\u7968\u6ac3\u53f0(\u9ad8 &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[266],"tags":[],"class_list":["post-11921","post","type-post","status-publish","format-standard","hentry","category-266"],"_links":{"self":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts\/11921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/comments?post=11921"}],"version-history":[{"count":1,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts\/11921\/revisions"}],"predecessor-version":[{"id":13365,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/posts\/11921\/revisions\/13365"}],"wp:attachment":[{"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/media?parent=11921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/categories?post=11921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fgchen.com\/wpedu\/wp-json\/wp\/v2\/tags?post=11921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}