2020-07-09日报博客
2020-07-09日报博客
1.完成的事情:
- 学习黑马Java教程61-90集。
- 完成CodeGym练习题。
2.遇到的问题:
- Java内存划分。
3.明日计划:
-
开始完成小学期任务的实验报告。
-
继续学习Java。
-
#include<iostream> using namespace std; struct Person { int id; Person* next; }; class Ring { private: int n, m; Person* head; public: Ring() { this->head = NULL; } void set(int N); void Delete(int id); void Main(); }; void Ring::set(int N) { head = new Person; head->id = 1; head->next = NULL; Person* p = head, * q = NULL; for (int i = 2; i <= this->n; i++) { q = new Person; q->id = i; q->next = NULL; p->next = q; p = q; } p->next = head; } void Ring::Delete(int _id) { Person* p = head, * q = NULL; if (head->id == _id) { while (p->next != head) { q = p; p = p->next; } head = head->next; p->next = head; } else { while (p->id != _id) { q = p; p = p->next; } q->next = p->next; } } void Ring::Main() { int i = 0, l = 0, startId; cout << "请输入总人数n: "; cin >> this->n; cout << "请输入报数的最大次数m: "; cin >> this->m; cout << "请输入报数开始的序号: "; cin >> startId; set(n); Person* p = head, * q; for (int j = 0; j < startId - 1; j++) { q = p; p = p->next; } while (l < n - 1) { q = p; p = p->next; i++; if (i == m) { l++; cout << q->id << " "; Delete(q->id); i = 0; } } cout << head->id << endl; } int main() { Ring ring; ring.Main(); }