{"id":177,"date":"2021-07-22T12:12:14","date_gmt":"2021-07-22T04:12:14","guid":{"rendered":"https:\/\/aisumura.net\/blog\/?p=177"},"modified":"2021-07-22T14:02:26","modified_gmt":"2021-07-22T06:02:26","slug":"%e5%af%a6%e4%bd%9c%e8%b3%87%e7%b5%902-linear-queue","status":"publish","type":"post","link":"https:\/\/aisumura.net\/blog\/2021\/07\/22\/%e5%af%a6%e4%bd%9c%e8%b3%87%e7%b5%902-linear-queue\/","title":{"rendered":"\u5be6\u4f5c\u8cc7\u7d50(2) &#8211; Linear Queue"},"content":{"rendered":"\n<h4>\u7528Array\u5be6\u4f5c:<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\/\/\u7528Array\u88fd\u4f5c\u4e00\u500bLinear Queue\n#include &lt;iostream&gt;\nusing namespace std;\n\nstruct Queue{\n    int max_size;\n    int head = 0;\n    int tail = 0;\n    int *elements;\n\n    Queue(int size){\n        \/\/\u521d\u59cb\u5316\n        elements = new int[size];\n        max_size = size;\n    }\n\n    bool isFull(){\n        if(tail == max_size) return true;\n        return false;\n    }\n\n    bool isEmpty(){\n        if(head == tail) return true;\n        return false;\n    }\n\n    void Enqueue(int a) {\n        if(isFull()){\n        cout &lt;&lt; \"Queue was full!\" &lt;&lt; endl;\n        }else{\n        elements[tail++] = a;\n        }\n    }\n\n    void Dequeue() {\n        if(head == tail){\n        cout &lt;&lt; \"Queue was empty!\" &lt;&lt; endl;\n        }else{\n        cout &lt;&lt; \"Deleted \" &lt;&lt; elements[head++] &lt;&lt; endl;\n        }\n    }\n\n    int First() {\n        return elements[head];\n    }\n\n    void Show(){\n        for(int i = head; i &lt; tail;i++){\n        cout&lt;&lt; elements[i];\n        }\n        cout &lt;&lt; endl;\n    }\n};\n\nint main (){\n  Queue q(3);\n  q.Enqueue(1);\n  q.Show();\n  q.Enqueue(2);\n  q.Show();\n  q.Enqueue(3);\n  q.Show();\n  q.Enqueue(4);\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  return 0;\n}<\/code><\/pre>\n\n\n\n<h4>\u7528Linked List\u5be6\u4f5c:<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\/\/\u7528Linked List\u88fd\u4f5c\u4e00\u500bLinear Queue\n#include &lt;iostream&gt;\nusing namespace std;\n\nstruct Node{\n    int data;\n    Node *next = NULL;\n    Node(int d){\n        data = d; \n    }\n};\n\nstruct Queue{\n  Node *head;\n  Node *tail = head;\n\n  int getLength(){\n    if(head == NULL) return 0; \n    int result = 1; \/\/HEAD\u4e5f\u4f54\u4e00\u683c\n    Node *t = head;\n    while(t-&gt;next != NULL){\n      result++;\n      t = t-&gt;next;\n    }\n    return result;\n  }\n\n\n  bool isEmpty(){\n    if(head == tail) return true;\n    return false;\n  }\n\n  void Enqueue(int a) {\n    if(isEmpty()){\n      head = new Node(-1);\n      tail = new Node(a);\n      head-&gt;next = tail;\n    }else{\n      tail-&gt;next = new Node(a);\n      tail = tail-&gt;next;\n    }\n  }\n\n  void Dequeue() {\n    if(head-&gt;next != NULL){\n      Node *tmp = head;\n      head = head-&gt;next;\n      free(tmp);\n    }\n  }\n\n  int First() {\n    if(head-&gt;next != NULL){\n      return head-&gt;next-&gt;data;\n    }\n    return -1; \/\/\u8868\u793aQueue\u70ba\u7a7a\n  }\n\n  void Show(){\n    Node *t = head;\n    while(t-&gt;next != NULL){\n      t = t-&gt;next;\n      cout &lt;&lt; t-&gt;data &lt;&lt; ' ';\n    }\n    cout &lt;&lt; endl;\n  }\n};\n\nint main (){\n  Queue q;\n  q.Enqueue(1);\n  q.Show();\n  q.Enqueue(2);\n  q.Show();\n  q.Enqueue(3);\n  q.Show();\n  q.Enqueue(4);\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  q.Dequeue();\n  q.Show();\n  return 0;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u7528Array\u5be6\u4f5c: \u7528Linked List\u5be6\u4f5c:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,18],"tags":[11,19],"_links":{"self":[{"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/posts\/177"}],"collection":[{"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":10,"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/posts\/177\/revisions\/233"}],"wp:attachment":[{"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aisumura.net\/blog\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}