为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
讨论题

慕先生4541263 的学生作业:

#include #include #include typedef int datatype_t; typedef struct loopnode { datatype_t data; struct loopnode *next; } loopnode_t; loopnode_t *create_loopnode() { loopnode_t *head = (loopnode_t *)malloc(sizeof(loopnode_t)); if (NULL == head) { printf("malloc runs fail"); return NULL; } memset(head, 0, sizeof(loopnode_t)); head->next = head; return head; } void insert_tail_loopnode(loopnode_t *head, datatype_t temp_data) { loopnode_t *p = (loopnode_t *)malloc(sizeof(loopnode_t)); p->data = temp_data; loopnode_t *tail = head; while (tail->next != head) { tail = tail->next; } p->next = head; tail->next = p; } void printf_loopnode(loopnode_t *head) { loopnode_t *p = head->next; while (p != head) { printf("%d ", p->data); p = p->next; } printf("\n"); } int is_empty(loopnode_t *head) { return head->next == head ? 1 : 0; } void handle_josephu(loopnode_t *head, int k, int m) { if (is_empty(head)) { return; } loopnode_t *prev = head; loopnode_t *current = head->next; for (int i = 1; i < k; i++) { prev = current; current = current->next; } int first = 1; while (head->next != head) { for (int i = 1; i < m; i++) { prev = current; current = current->next; if (current == head) { prev = current; current = current->next; } } printf("%d ", current->data); prev->next = current->next; loopnode_t *temp = current; current = current->next; if (current == head) { current = head->next; prev = head; } free(temp); } printf("\n"); } int main() { loopnode_t *head = NULL; head = create_loopnode(); int n; printf("please enter the number of data you want to add: \n"); scanf("%d",&n); int k = 3; int m = 4; for (int i = 1; i

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号