Algo lab/templates/icecream1

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 07:29, 16 กันยายน 2564 โดย Jittat (คุย | มีส่วนร่วม) (สร้างหน้าด้วย "<syntaxhighlight lang="cpp"> #include <iostream> using namespace std; typedef int ValueType; struct ListNode { ValueType val; ListNode* next; Lis...")
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา
#include <iostream>
using namespace std;

typedef int ValueType;
struct ListNode {
  ValueType val;
  ListNode* next;

  ListNode(ValueType v, ListNode* nxt=0)
    : val(v), next(nxt) {}
};

ListNode* front = nullptr;
ListNode* rear = nullptr;

void append(ListNode*& front, ListNode*& rear, ValueType x)
{
  ListNode* n = new ListNode(x);
  if (rear != nullptr) {
    rear->next = n;
    rear = n;
  } else {
    front = rear = n;
  }
}

ValueType extract(ListNode*& front, ListNode*& rear)
{
  ValueType v = front->val;

  ListNode* new_front = front->next;
  delete front;
  front = new_front;
  if (front == nullptr) {
    rear = nullptr;
  }
  return v;
}

int main()
{
  int m;

  cin >> m;
  for (int i = 0; i < m; ++i) {
    int t;

    cin >> t;
    if (t == 1) {
      int n;
      cin >> n;
      // your code here
    } else {
      // here, t = 2.  Call someone to the queue.
    }
  }

  // you have to print the number of remaining customers as well.
  // iterate the rest of the list here...
  
}